我正在设置基本的cookie跟踪并通过确保cookie在他们的计算机上并且他们的IP与我存储的记录匹配并且记录在过去一小时内存储来验证。我在过去一小时内就选择了mySQL数据了。
就目前而言,我的表中的列称为'timestamp',它只包含使用NOW()插入的完整时间戳。我查了一下,认为我找到了正确的电话,但这不起作用:
$q = "SELECT * FROM conversion_data WHERE ip='$ip' AND timestamp < DATEADD(HOUR, -1, CURRENT_TIMESTAMP) ";
取出时间戳调用,一切正常,所以只是一部分。
谢谢!
答案 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,在您的情况下应用相关功能。