MySQL查询仅在72小时内运行

时间:2014-08-08 15:55:36

标签: php mysql sql

我目前有一个脚本,可以从游戏中运行新闻,并显示统计数据等。其中一个查询只计算数据库中的项目数并显示它。它正在计数的数据库有一个名为“timestamp”的列,它采用unix时间戳格式(秒数)。

我希望查询仅添加数据库中在运行查询之前72小时内发生的实例数。 (所以如果我在2014年8月8日上午10点运行它,我希望它将记录向后计算72小时一直到2014年8月8日上午10点)。

我已经尝试编写我的查询来完成此操作,但我不知道如何编写查询来弄清楚我应该如何安排它。以下是我到目前为止所计算的整个数据库中的所有记录,无论时间如何:

$result2 = mysql_query("SELECT COUNT(xxxxx) FROM xxx WHERE xxxxx= '$row[3]'")
           or die("Could not select the table");

如何修改上述查询以过滤掉过去72小时内没有的任何内容。请记住,我的数据库确实有一个名为“timestamp”的列,它是unix时间戳格式。感谢您的帮助,这让我感到困扰了一段时间!

3 个答案:

答案 0 :(得分:2)

WHERE yourtimefield > (now() - INTERVAL 72 HOUR)

答案 1 :(得分:0)

如果timestamp字段是正确的时间列而不是整数,则可以使用MySQL为您执行此操作。 72小时是3天。 datediff函数返回两个日期/时间字段之间的天数。

select * from xxx where datediff(now(),timestamp)<=3;

答案 2 :(得分:0)

你可以通过strtotime功能获得时间戳

你的代码就像

$time = strtotime ("-3 DAY");
$result2 = mysql_query("SELECT COUNT(xxxxx) FROM xxx WHERE xxxxx= '$row[3]' AND timestamp > $time")
           or die("Could not select the table");