我目前有一个脚本,可以从游戏中运行新闻,并显示统计数据等。其中一个查询只计算数据库中的项目数并显示它。它正在计数的数据库有一个名为“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时间戳格式。感谢您的帮助,这让我感到困扰了一段时间!
答案 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");