mysql - 检查日期和时间是否超过过去 x 小时

标签 mysql date

我有一个表,其中有一个日期列,然后有一个时间和超时列 - 在某些情况下,我需要检查的时间可能是昨天,这就是我正在努力的地方。

我无法更改表格布局以使用日期时间,因为这是我正在做少量工作的更广泛系统的一部分。

例如,现在是 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/

相关文章:

mysql - SQL Select 语句被一个变量关闭但找不到问题

sql-server - 使用 SQL Server 比较日期

php - 从上周六(每周)获取时间戳?

mysql - SQL 选择查询

mysql - Wordpress - 为电子邮件创建自定义简码

mysql 根据重复集和时间删除一些条目

php - 在表中插入数据和多个图像 [PHP]

ios - 日期格式 日/月/年 HH :mm z is crashing while converting string to Date Swift 3. 0

javascript - 如何在不同月份的javascript中获取两个日期之间的差异

Sqlite DateTime 无法识别 Java 当前日期时间