sql获取特定月份的天数

时间:2018-11-18 18:11:33

标签: mysql sql

我需要在mysql上进行查询,以返回特定月份某天课程的发生率,我将通过以下示例更好地说明这一点:

(strlen($input) != 3)

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

谢谢

1 个答案:

答案 0 :(得分:0)

查找从11月开始的课程的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”),减去一天

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