首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql获取特定月份中的天数。

sql获取特定月份中的天数。
EN

Stack Overflow用户
提问于 2018-11-18 18:11:33
回答 1查看 49关注 0票数 0

我需要对mysql进行查询,在某个月的某一课程的几天内返回相关信息,我将通过一个示例进行更好的解释:

代码语言:javascript
复制
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)

发病月份(前)是由用户动态选择的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-18 18:16:37

查找11月开始的课程的11月部分:

代码语言:javascript
复制
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‘作为日),减去一天。

我们希望排除在结束之前或之后开始的课程,因此where子句的结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53364008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档