gpt4 book ai didi

mysql - sql获取特定月份的天数发生率

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

我需要在 mysql 上进行查询,返回特定月份类(class)天数的发生率,我将通过一个示例更好地解释:

Course A
start 2018-10-18 end 2018-11-16 (incidence in november 16 days
Course B
start 2018-11-05 end 2018-11-05 (incidence in november 1 days)
Course C
start 2018-10-05 end 2019-01-20 (incidence in november 30 days)

发病月份(例如 11 月)由用户动态选择。

谢谢

最佳答案

查找 11 月份开始的类(class)的 11 月份部分:

SELECT DATE_DIFF(
CASE WHEN start_date > '2018-11-01' THEN start_date ELSE '2018-11-01' END,
CASE WHEN end_date <= '2018-11-30' THEN end_date ELSE '2018-11-30' END
) + 1
FROM
courses
WHERE NOT(start_date > '2018-11-30' OR end_date < '2018-11-01')

我们基本上对开始日期和结束日期进行测试 - 如果开始日期在 11 月之前,则将其固定为 11 月 1 日。如果结束日期在 11 月底之后,则将其固定在 11 月底。该查询包含两个日期 - 前端应用程序可以在用户选择 11 月后提供这些日期。查找一个月的最后一个日期的基本公式是转到下个月的第一个日期(即同年,月份+1,'01'作为日期),减去一天

我们希望排除之前结束或之后开始的类(class),因此使用了 where 子句的结构。

关于mysql - sql获取特定月份的天数发生率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53364008/

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