【发布时间】:2020-05-16 02:44:33
【问题描述】:
有一个表 concerts 包含字段 start_date,格式为:2019-06-08 10:00:00 和字段 duration - 持续时间以分钟为单位。我需要找到与特殊日期时间相交的音乐会。我正在使用:
SELECT
id, duration, start_date,
DATE_ADD(date, INTERVAL + duration MINUTE) as end_date
FROM
concerts
WHERE
start_date <= '2019-06-08 10:00:00'
and end_date >= '2019-06-08 10:00:00'
我可以计算end_date,但我不能在where 块内使用它,只能在having 内使用。
如何将OR 表达式与where 和having 一起使用?我发现我可以使用 having 块内的所有条件,但这对性能不利。有什么建议吗?
P.S如果我可以在一个查询中使用where,再添加一个OR having,或者我该如何替换它
【问题讨论】:
-
没有什么能阻止
WHERE start_date <= '2019-06-08 10:00:00' HAVING end_date >= '2019-06-08 10:00:00' -
是的,但是我需要使用
where或having吗? -
您告诉“我需要找到与特殊日期时间相交的音乐会”。交叉口需求和:
WHERE start1 < end2 AND start2 < end1。在你的情况下start2=end2=timepoint. -
好吧,也许我的解释不是很清楚,在这种情况下,你是对的,但我想了解我是否可以使用
where或having
标签: mysql sql date datetime where-clause