MySQL在给定间隔之间选择行

时间:2015-11-07 17:17:58

标签: php mysql sql

表格视频

id | title  | time
------------------------
1  | o'najr | 1406332800

我想选择距离给定时间6个月之间的行。无论是新的还是旧的

所以如果查询时间是ex。 1446076800将选择比这更早6个月或比此更新6个月的所有行。

time采用UNIX TIMESTAMP格式。

因此,如果视频在2015年10月上传,则将选择2015年4月及更新版本上传的所有视频。此外,将选择2015年10月至2016年4月的所有视频。

6 months <---- || query time || ----> 6 months

这是我的查询,但它根本不起作用。它只是一个结构而不是一个有效的查询。

:time是将用于查询的变量。

select `title` 
from `videos` 
where DATE_FORMAT(FROM_UNIXTIME(time - :time)) > INTERVAL 6 MONTH 
      or 
      DATE_FORMAT(FROM_UNIXTIME(:time - time)) < INTERVAL 6 MONTH

1 个答案:

答案 0 :(得分:1)

您的查询没有意义。您正在尝试将特定日期与时间间隔进行比较。

试试这个:

SELECT title FROM videos 
WHERE FROM_UNIXTIME(time) BETWEEN
    DATE_SUB(FROM_UNIXTIME(:time), INTERVAL 6 MONTH) 
    AND DATE_ADD(FROM_UNIXTIME(:time), INTERVAL 6 MONTH)