我一直试图让我的sql查询返回在过去7天中创建的记录。
每个条目都有一个时间戳记录,因此我使用了TIMESTAMPDIFF函数来编写以下查询
SELECT * FROM `messages` WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= 7出于某种原因,这是一个2011年的记录列表!
这是我做错的简单语法错误吗?
我也尝试过使用DATEDIFF()
SELECT * FROM `messages` WHERE DATEDIFF(NOW(), time) <= 7但这似乎给了我同样错误的结果。我怀疑这是因为DATEDIFF没有使用UNIX时间戳?
我在另一个使用DATEDIFF()查询的表上使用了另一个查询,它运行良好,但该表中有一个实际日期列,而不是时间戳。
对不起,如果这是一个简单的答案,但我已经玩了一段时间,但现在没有用!
发布于 2013-08-25 16:47:07
请尝试以下查询:
SELECT *
FROM messages
WHERE time > UNIX_TIMESTAMP(NOW()) - 604800一个小小的解释:7天= 168小时= 10 080分钟= 604 800秒。
由于UNIX时间戳是自1970-01-01 00:00:00以来传递的秒数,所以必须使用秒计算。因此,MySQL中的大多数日期/时间函数都是无用的,因为它们只使用本机MySQL格式来存储日期和时间。
https://stackoverflow.com/questions/18431230
复制相似问题