表格视频
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
答案 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)