PHP / MySQL - 下一次出现凌晨4点

时间:2014-07-20 14:26:47

标签: php mysql

我试图在MySQL或PHP中创建一个语句,它只会选择在下一次出现的凌晨4点之前发生的值,即下一次凌晨4点发生的值。我目前有一个像这样的SELECT语句:

SELECT * 
FROM `dated` 
WHERE (
  DATE(`start_timestamp`) = DATE(NOW())
  OR DATE(`end_timestamp`) = DATE(NOW())
)

这使我获得了今天可用的那些,但是,我想排除今天有效但在凌晨4点之后发生的结果

1 个答案:

答案 0 :(得分:3)

你可以试试这个:

select *
from dated
where start_timestamp <= date(now() - interval 4 hour) + interval 28 hour;

从当前时间减去四小时,并使用date()截断时间部分。然后它会增加一天四小时来到下一个凌晨4点。

编辑:

从过去4点过滤到下一个过滤器使用相同的想法:

select *
from dated
where start_timestamp >= date(now() - interval 4 hour) + interval 4 hour and
      start_timestamp < date(now() - interval 4 hour) + interval 28 hour;