从unix timestamp mysql中选择最近7天

时间:2017-03-05 06:10:10

标签: mysql timestamp

我从未真正搞过这种类型的查询,所以我需要一些帮助。我有一个包含timestamp列的表格,其中包含以下内容

1488693506
1488576676
1488575917
1487563577
1487563170
1487352348
1487352291
1487207322

我正在使用以下mysql语句

SELECT * FROM table WHERE (`timestamp` > DATE_SUB(now(), INTERVAL 7 DAY))

据我所知,这应该返回我列出的时间戳过去7天内的最近7天的记录,但没有返回任何记录。我做错了什么?

1 个答案:

答案 0 :(得分:6)

您应该使用from_unixtime函数将日期转换为where条件并查看可读日期格式:

SELECT from_unixtime(`timestamp`) 
  FROM table 
 WHERE from_unixtime(`timestamp`) > date_sub(now(), interval 7 day);

它会告诉你:

March, 05 2017 05:58:26
March, 03 2017 21:31:16
March, 03 2017 21:18:37

在此处查看:http://sqlfiddle.com/#!9/d60e91/1

编辑:假设时间戳已编入索引,则编写相同内容的更佳方式可能如下:

SELECT FROM_UNIXTIME(`timestamp`) x
  FROM test_t 
 WHERE timestamp > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 DAY));