gpt4 book ai didi

MySQL 查询 - 日期/之间的问题

转载 作者:行者123 更新时间:2023-11-30 00:21:58 25 4
gpt4 key购买 nike

我有一个显示事件的第 3 方插件,但是由于某种原因,每当有多天的事件时,当当天超过开始日期时,它就会停止显示该事件,即使结束日期仍在未来。

MySQL 查询似乎试图返回这些内容,并在 OR 后面加上 BETWEEN 部分,但它从未这样做。我对 MySQL 不太熟悉,看不出问题所在。

例如,我期望它在此处返回的行包含:

published=1 
dates=2014-04-17
enddates=2014-04-19

SQL:

SELECT a.* 
FROM eventlist_events AS a
WHERE a.published = 1
AND a.dates >= '2014-04-18'
AND (DATE(a.dates) = DATE_ADD('2014-04-18',INTERVAL 0 DAY)
OR ( a.enddates IS NOT NULL
AND (DATE_ADD('2014-04-18',INTERVAL 0 DAY)
BETWEEN DATE(a.dates) AND DATE(a.enddates))) )

最佳答案

为了满足 2014-04-18 的 where 子句落在列值之间:

SELECT a.* FROM eventlist_events AS a 
WHERE a.published = 1
AND a.enddates IS NOT NULL
AND '2014-04-18' BETWEEN DATE(a.dates) AND DATE(a.enddates)

如果你想在 a.enddates 也为空时获取,那么

SELECT a.* FROM eventlist_events AS a 
WHERE a.published = 1
-- AND a.enddates IS NOT NULL
AND '2014-04-18'
BETWEEN DATE( a.dates )
AND DATE( IFNULL( a.enddates, a.dates ) )

关于MySQL 查询 - 日期/之间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23162584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com