事件A在一个月的24日至29日之间发生。如果用户选择24日之后至29日之前的任何日期。是否可以显示事件A
如果用户选择25日和27日,我正在使用此查询。
Select *
from Events
where DateFrom >= '25-01-2019' and DateTo <= '27-01-2019'
它不会显示事件A,因为它的开始日期和结束日期不同。
示例数据
id name DateFrom DateTo
1 Music eventA 2019-01-24 2019-01-29
2 Music eventB 2019-01-25 2019-01-30
如果用户选择DateFrom'2019-01-26'和DateTo'2019-01-27'我想显示id = 1的事件,因为26和27位于24到29之间
答案 0 :(得分:0)
如果要选择在所选日期范围内“发生”或“部分发生”的所有事件,则可以
Select * from Events
where DateFrom <= '2019-01-27' and DateTo >= '2019-01-25'
如果您只希望在指定日期的整个时间范围内发生的事件都需要
Select * from Events
where DateFrom <= '2019-01-25' and DateTo >= '2019-01-27'
除了使用字符串格式'2019-01-25'
之外,您还可以使用数字日期格式20190125
。两种形式都应同样有效。
答案 1 :(得分:0)
请如下更新您的查询。日期在查询中传递不正确。
Select *
from Events
where ( DateFrom >= '25-01-2019' and DateFrom <= '27-01-2019') and
( DateTo >= '25-01-2019' and DateTo <= '27-01-2019' ).
答案 2 :(得分:0)
应将所选的开始日期(docker login
)与数据的2019-01-26
相比较,而所选的结束日期(DateFrom
)应该与2019-01-27
相比较,如该查询中所述,
DateTo
使用以下示例数据,其工作正确,
SELECT *
FROM Events
WHERE DateFrom <= '2019-01-26'
AND DateTo >= '2019-01-27';
上面的查询返回此结果,
id name DateFrom DateTo
1 Some other event 2018-12-12 2018-12-31
2 Music Event A 2019-01-24 2019-01-29
3 Music eventB 2019-01-25 2019-01-30
4 Event C 2019-02-01 2019-02-09
希望它能回答您的问题!