ADD_DATE() 不适用于 mysql 中的 where 子句

Posted

技术标签:

【中文标题】ADD_DATE() 不适用于 mysql 中的 where 子句【英文标题】:ADD_DATE() not working with where clause in mysql 【发布时间】:2021-08-16 15:00:25 【问题描述】:

我想从表中获取关于 creation_time 的最近 4 小时内处于状态 1 的所有记录(在我的情况下,creation_time 是我要应用 +4 小时检查的列)。为此,我使用以下查询尝试了 ADD_DATE(),但即使我有相同的可用记录,它也没有返回任何记录。

select id,name,status,creation_time, DATE_ADD(creation_time, INTERVAL 4 HOUR) as modified_time 
from booking
where status=1 and creation_time >= DATE_ADD(creation_time, INTERVAL 4 HOUR)

任何人,请让我知道我的解决方案哪里做错了。

【问题讨论】:

【参考方案1】:

日期/时间值永远不会大于 相同的值加上四个小时。

如果你想要最后四个小时,我希望有一个像这样的where 子句:

where status = 1 and
      creation_time >= now() - interval 4 hour

注意使用now() 进行比较。

【讨论】:

“不工作”是什么意思?这似乎完全符合您的要求。

以上是关于ADD_DATE() 不适用于 mysql 中的 where 子句的主要内容,如果未能解决你的问题,请参考以下文章

为啥 mysql 中的这个查询适用于该表,但不适用于该表的视图?

MYSQL 查询不适用于 where 或 FIND_IN_SET 中的希腊词

Django MySql全文搜索有效,但不适用于测试

MySQL 5.7 JSON_EXTRACT 不适用于对象中的带引号的字符串:[错误]“字符串中缺少右引号”

MySQL - WHERE 子句中的 NOT IN 查询具有相同的结构,适用于第一个表但不适用于第二个表

在 PhP、Wordpress 和 MySQL 中,查找最近的位置的功能不适用于自定义表