mySQL在过去一小时内选择记录

时间:2012-09-12 21:59:38

标签: php mysql sql

我正在设置基本的cookie跟踪并通过确保cookie在他们的计算机上并且他们的IP与我存储的记录匹配并且记录在过去一小时内存储来验证。我在过去一小时内就选择了mySQL数据了。

就目前而言,我的表中的列称为'timestamp',它只包含使用NOW()插入的完整时间戳。我查了一下,认为我找到了正确的电话,但这不起作用:

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp < DATEADD(HOUR, -1, CURRENT_TIMESTAMP) ";

取出时间戳调用,一切正常,所以只是一部分。

谢谢!

2 个答案:

答案 0 :(得分:5)

尝试:

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp > DATE_SUB(CURDATE(), INTERVAL 1 HOUR)";

答案 1 :(得分:2)

您当前的查询将选择超过一小时的行。更改时间戳谓词以便它将获取时间大于或等于(即大于或等于)的行应该有效。

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp >= DATEADD(HOUR, -1, CURRENT_TIMESTAMP) ";

请注意,我不确定dateadd是否适用于mysql,在您的情况下应用相关功能。