gpt4 book ai didi

SQL 返回落在期间和范围内的日期

转载 作者:可可西里 更新时间:2023-11-01 07:50:38 25 4
gpt4 key购买 nike

我已经为此苦苦思索了一段时间……我的目标是返回所有介于开始日期和结束日期之间的日期,并从开始日期开始将某个时间段作为一个因素。 (难以解释)

例如……

开始日期:1987 年 11 月 20 日;结束日期:1988 年 1 月 1 日;周期:10天;

我想要这些日期:1987 年 11 月 20 日; 1987 年 11 月 30 日; 1987 年 12 月 10 日; 1987 年 12 月 20 日; 1987 年 12 月 30 日;

我已经有一个日期表,其中包含从 1900 年到 2099 年的所有日期。期间可以是天、月或年。有任何想法吗?如果您需要更多信息,请告诉我。

MySQL

最佳答案

天数使用 DATEDIFF 和模运算:

SELECT * FROM dates
WHERE `date` BETWEEN '1987-10-20' AND '1988-1-1'
AND DATEDIFF(`date`, '1987-10-20') % 10 = 0

对于 10 年的周期,计算年对周期的模差,并确保月和日相同:

SELECT * FROM dates
WHERE `date` BETWEEN '1980-10-20' AND '2000-10-20'
AND MONTH(date) = 10 AND DAY(date) = 20 AND (YEAR(date) - 1980) % 10 = 0

以月为单位的时间段没有明确定义,因为月份的长度不同。比 1 月 30 日晚一个月是多少?您可以让它在某些特殊情况下工作,例如“本月第一天”。

关于SQL 返回落在期间和范围内的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2466091/

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