我有一个表,其中有一个日期列,然后有一个时间和超时列 - 在某些情况下,我需要检查的时间可能是昨天,这就是我正在努力的地方。
我无法更改表格布局以使用日期时间,因为这是我正在做少量工作的更广泛系统的一部分。
例如,现在是 2019-02-21 20:01:00,我正在查找时间超过 8 小时前的所有记录。
这是我正在使用的查询:
SELECT id from table where
((date='2019-02-21' and time_in < date_sub(now(),interval 8 hour))
or
(date='2019-02-20' and time_in < date_add(now(), interval 16 hour)))
and
time_out='00:00:00'
- 如果我的日期为 2019 年 2 月 21 日,时间为 10:00,则此方法有效
- 如果我的日期为 2019 年 2 月 20 日,时间为 10:00,则此方法有效
- 如果我的日期为 2019 年 2 月 21 日,时间为 23:00,则此方法不起作用
是否可以在时间加上间隔的负数超过午夜/00:00 的情况下使用此功能?
最佳答案
使用TIMESTAMP
函数组合日期和时间,然后与日期进行比较:
WHERE TIMESTAMP(date, time_in) < CURRENT_TIMESTAMP - INTERVAL 8 HOUR
关于mysql - 检查日期和时间是否超过过去 x 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54815437/