【问题标题】:SQL Query to show number of stories created in last 24 hours?SQL 查询显示过去 24 小时内创建的故事数?
【发布时间】:2010-10-27 04:51:57
【问题描述】:

我正在尝试创建一个自定义查询,该查询将显示过去 24 小时内在 Drupal 6 网站上发布的故事数。

故事存储在“节点”表中。每条记录都有一个“已创建”行,记录发布故事时的 UNIX 时间戳。

这是我目前正在尝试的查询:

$sq = 'SELECT COUNT(*) cnt '
    . 'FROM {node} c WHERE created >= dateadd(hour,-24,getdate())'; 

但这似乎不起作用。我做错了什么?

编辑:这是我现在尝试使用的整体代码:

$sq = 'SELECT COUNT(*) AS cnt FROM {NODE} n WHERE FROM_UNIXTIME(n.created) >= DATE_SUB(NOW(), INTERVAL 1 DAY)';                                                                                        

$q = db_query($sq);

while ($o = db_fetch_object($q)) {

            print_r($o);

}

那个 print_r 没有返回任何东西。我的错误在哪里?

【问题讨论】:

    标签: php sql drupal timestamp


    【解决方案1】:

    对于 MySQL,使用:

    SELECT COUNT(*) AS cnt
      FROM NODE n
     WHERE FROM_UNIXTIME(n.created) >= DATE_SUB(NOW(), INTERVAL 1 DAY)
    

    请注意NOW() 包括语句运行的时间。如果要统计记录,从前一天的午夜开始,使用:

    SELECT COUNT(*) AS cnt
      FROM NODE n
     WHERE FROM_UNIXTIME(n.created) >= DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)
    

    参考:

    【讨论】:

    • 或者,将date_sub(...) 包裹在UNIX_TIMESTAMP()
    • 嗯,我搞砸了:
      $sq = 'SELECT COUNT(*) AS cnt FROM {NODE} n WHERE FROM_UNIXTIME(n.created) >= DATE_SUB(NOW( ), 间隔 1 天)'; $q = db_query($sq); $stats = 数组(); while ($o = db_fetch_object($q)) { $stats[$o->day] = array($o->day, $o->cnt); print_r($o); }
    • @bflora:为什么表名上有大括号?您可能需要将其括在反引号中 -- {node}
    • 刚刚发布了对问题的编辑,其中包含我试图用来测试它的整体代码。 print_r 语句没有返回任何东西......
    • @bflora:谢谢更新问题,对不起,我必须上交,但我不知道 Drupal API,只知道 SQL:/
    【解决方案2】:

    由于您在 PHP 中执行此操作,因此您可以使用 $_SERVER['REQUEST_TIME']。我的猜测是它会比使用 SQL 进行日期操作更快:

    $count = db_result(db_query("SELECT COUNT(nid) FROM {node}
              WHERE created >= %d;", $_SERVER['REQUEST_TIME'] - 86400));
    

    您也可以使用time 获取当前时间戳,但这会比使用$_SERVER['REQUEST_TIME'] 变量慢一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-28
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 2013-02-08
      • 1970-01-01
      相关资源
      最近更新 更多