2

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

就目前而言,我表中的列称为“时间戳”,它只包含用 NOW() 插入的完整时间戳。我检查了一下,认为我找到了正确的电话,但这没有用:

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

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

谢谢!

4

2 回答 2

5

尝试:

$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp > DATE_SUB(CURDATE(), INTERVAL 1 HOUR)";
于 2012-09-12T22:04:43.200 回答
2

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

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

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

于 2012-09-12T22:04:56.330 回答