从unix时间戳mysql中选择最后7天

从unix时间戳mysql中选择最后7天,mysql,timestamp,Mysql,Timestamp,我从来没有真正弄乱过这种类型的查询,所以我需要一些帮助。我有一个带有timestamp列的表,其中包含以下内容 1488693506 1488576676 1488575917 1487563577 1487563170 1487352348 1487352291 1487207322 我使用下面的mysql语句 SELECT * FROM table WHERE (`timestamp` > DATE_SUB(now(), INTERVAL 7 DAY)) 从我所看到的,这应该返回我

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

1488693506
1488576676
1488575917
1487563577
1487563170
1487352348
1487352291
1487207322
我使用下面的mysql语句

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

从我所看到的,这应该返回我列出的时间戳的最后7天内的最后7天的记录,但是没有返回任何记录。我做错了什么?

您应该使用
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
看到它在这里工作:

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

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

你有办法吗?我也遇到过同样的情况,没有任何记录被退回!!