USERS
ID TIMEMODIFIED
1 1400481271
2 1400481489
3 1400486453
4 1400486525
5 1401777484
我有时间修改字段,从时间修改后,我需要从今天的日期开始获取最近4周的行。
SELECT id FROM USERS
WHERE FROM_UNIXTIME(timemodified,'%d-%m-%Y') >= curdate()
AND FROM_UNIXTIME(timemodified,'%d-%m-%Y') < curdate()-1
答案 0 :(得分:0)
您的时间已经是Unix时间戳格式。请记住,将[TIMEMODIFIED]
与转换为Unix时间戳的当前日期进行比较会更有效率。此外,除非[TIMEMODIFIED]
可能在将来,否则您无需检查任何上限。
尝试:
-- 60x60x24x7x4 = 2419200 seconds in four weeks
SET @unix_four_weeks_ago = UNIX_TIMESTAMP(curdate()) - 2419200;
SELECT id FROM USERS
WHERE timemodified >= @unix_four_weeks_ago;
NB。四个星期前(即今天 - 28天)在答复时是1,437,696,000(7月24日)。您提供的示例中的最新记录的时间戳可以追溯到2014年6月3日,因此查询不会返回这些记录。