【问题标题】:How can I compare two DateTime fields in MySQL?如何比较 MySQL 中的两个 DateTime 字段?
【发布时间】:2016-01-27 20:01:19
【问题描述】:

您可以阅读标题中的问题。假设表 A 的日期时间字段为“2015-12-01 00:00:00”,表 B 为“2014-12-01 00:00:00”。

我想要该表中具有较大日期时间的数据行。

类似“datetime(A.datetime) > datetime(B.datetime)”的东西不起作用。

帮帮我。

【问题讨论】:

  • "isn't working" 可能是真的,但它没有描述您观察到的行为。由于引用了一个名为DATETIME() 的函数,而该函数在MySQL 中不存在,因此我们对使用问题中显示的表达式的语句所期望的一个可能结果是MySQL 错误1064。两个DATEDATETIMETIMESTAMP 表达式之间的不等式比较可以使用正常的不等式比较运算符来执行。

标签: mysql datetime compare


【解决方案1】:

当比较两个日期时间时,它们将被解释为时间戳,因此只需执行A.datetime > B.datetime 就可以了。

【讨论】:

    【解决方案2】:

    您应该能够按原样比较日期时间字段,A.datetime > B.datetime

    【讨论】:

      【解决方案3】:

      如答案所示,您不能总是使用 、= 进行直接比较。请参阅 MySQL 文档https://dev.mysql.com/doc/refman/5.7/en/using-date.html

      当您将 DATE、TIME、DATETIME 或 TIMESTAMP 与常量进行比较时 带有 =、> 或 BETWEEN 运算符的字符串,MySQL 通常 将字符串转换为内部长整数以便更快地比较 (以及更“宽松”的字符串检查)。然而,这 转换受以下例外情况的影响:

      • 比较两列时

      【讨论】:

        猜你喜欢
        • 2016-02-24
        • 2010-10-16
        • 2017-06-25
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        • 1970-01-01
        • 2020-10-26
        • 1970-01-01
        相关资源
        最近更新 更多