gpt4 book ai didi

mysql - SQL:查询给定日期的时间段

转载 作者:行者123 更新时间:2023-11-29 04:35:40 25 4
gpt4 key购买 nike

我有一个一年中的时期列表,它们每年都相同。您可以将其视为一个季节。它们有开始日期和结束日期。

因为可能会有相互跳跃的季节,我需要查询所有给定日期的匹配季节,无论是哪一年

举个例子:

第 1 季:1 月 1 日至 1 月 10 日第二季:1月6日至1月8日Season3:1月11日-1月20日

鉴于日期是 1 月 7 日,我需要检索第 1 季和第 2 季。

我试过将所有日期转换为同一年,但当一个季节的开始日期“晚于”结束日期时(例如,有一个从 11 月开始到 2 月结束的时期),它不起作用).

在此先感谢您的帮助。

编辑,示例数​​据:

StartDate   EndDate     SeasonId
2000-08-01 2000-08-31 4
2000-12-29 2000-01-02 3
2000-06-01 2000-07-30 3
2000-09-01 2000-09-30 3
2000-01-06 2000-01-08 3
2000-04-07 2000-04-17 3
2000-04-28 2000-05-01 3
2000-06-02 2000-06-05 3
2000-06-23 2000-06-25 3
2000-09-08 2000-09-11 3
2000-09-22 2000-09-25 3
2000-10-12 2000-10-15 3
2000-11-01 2000-11-05 3
2000-12-01 2000-12-10 3
2000-12-22 2000-12-26 3
2000-03-01 2000-05-31 2
2000-10-01 2000-10-31 2
2000-11-01 2000-02-28 1

例如,我需要日期 2000-02-08 的季节,并检索 seasonId = 1 或日期 2000 -10-13并检索 seasonId = 3, seasonId = 2

最佳答案

我会在 2 个“选项”中执行此操作:(以下 SQL 假设您已经去掉了表中的年份,只留下月-日格式。)

 select ... from seasons s where 
(s.startDate <= s.endDate and s.startDate <= @mydate and s.endDate >= @mydate) or
(s.startDate > s.endDate and s.startDate >= @mydate and s.endDate <= @mydate)

关于mysql - SQL:查询给定日期的时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784813/

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