我有一些程序,他们的时间如下:
P1:下午5点到晚上8点 P2:晚上8点到凌晨1点 P3:凌晨2点到凌晨4点
让我们假设P2我必须得到最近30天的记录。我正在使用此查询。
select * from {table}
WHERE timestamp BETWEEN '01-09-2013 8pm' AND '30-09-2013 1am'
然而,该查询返回的时间超出了P2的记录,因为我正在使用between
。
我希望获得30天的记录,但它也应该只限制在每天晚上8点到凌晨1点之间。
我该怎么做?
答案 0 :(得分:1)
最简单的方法是:
select * from {table}
WHERE timestamp BETWEEN '01-09-2013' AND '30-09-2013'
AND DATE_FORMAT(timestamp,'%H') in ("20","21","22","23","00")
答案 1 :(得分:0)
Select * from {table}
WHERE FROM_UNIXTIME(timestamp) BETWEEN '01-09-2013' AND '01-10-2013'
AND (FROM_UNIXTIME(timestamp,'%H')>=20 OR FROM_UNIXTIME(timestamp,'%H')<=1)