【发布时间】:2020-12-25 20:24:43
【问题描述】:
大家好,我在 mysql 中有表
我需要过滤结果,其中 created_at 和更新时间相差 2 小时或更短
我正在尝试使用:
SELECT *
FROM `imoniu_r_padaliniai`
WHERE DATEDIFF(hour, created_at, updated_at) <= 2;
但我得到语法错误如何实现这一点?
【问题讨论】:
大家好,我在 mysql 中有表
我需要过滤结果,其中 created_at 和更新时间相差 2 小时或更短
我正在尝试使用:
SELECT *
FROM `imoniu_r_padaliniai`
WHERE DATEDIFF(hour, created_at, updated_at) <= 2;
但我得到语法错误如何实现这一点?
【问题讨论】:
只需使用直接比较:
where updated_at <= created_at + interval 2 hour
在 MySQL 和 MariaDB 中,datediff() 仅处理日期差异。如果你想要任意时差,你需要timestampdiff()。不过,我建议改用直接比较。
datediff() 的三参数形式是 SQL Server(和少数其他数据库)中的语法,而不是 MySQL。
【讨论】: