【问题标题】:SQL where DATEDIFFSQL 在哪里 DATEDIFF
【发布时间】:2020-12-25 20:24:43
【问题描述】:

大家好,我在 mysql 中有表

我需要过滤结果,其中 created_at 和更新时间相差 2 小时或更短

我正在尝试使用:

SELECT * 
FROM `imoniu_r_padaliniai`
WHERE DATEDIFF(hour, created_at, updated_at) <= 2;

但我得到语法错误如何实现这一点?

【问题讨论】:

    标签: sql time mariadb datediff


    【解决方案1】:

    只需使用直接比较:

    where updated_at <= created_at + interval 2 hour
    

    在 MySQL 和 MariaDB 中,datediff() 仅处理日期差异。如果你想要任意时差,你需要timestampdiff()。不过,我建议改用直接比较。

    datediff() 的三参数形式是 SQL Server(和少数其他数据库)中的语法,而不是 MySQL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 2012-12-01
      • 2010-10-02
      • 2012-05-04
      • 2013-01-18
      相关资源
      最近更新 更多