在SQL Server中,如何获取给定月份范围内按月分组的周末总天数?

Arjun

如何在SQL Server中获取给定月份范围内按月分组的周末(星期日)总计数?

例如:所选日期:“ 2020年10月”至“ 2020年12月”

月份名称 计数
十月 4
十一月 4
十二月 5
巴巴罗斯·奥赞

您可以使用DATEDIFF()DATENAME()函数以及递归CTE,例如

DECLARE @date1 AS DATE, @date2 AS DATE;
SET @date1 = '2020-10-01';
SET @date2 = '2020-12-31';

WITH cte AS 
(
  SELECT 0 AS n
  UNION ALL
  SELECT n + 1 AS value
    FROM cte
   WHERE cte.n < DATEDIFF(day,@date1,@date2) 
)
SELECT DATENAME(MONTH,DATEADD(day, n, @date1 ) ) AS [Month Name], COUNT(*) AS [Count]
  FROM cte
 WHERE DATENAME(WEEKDAY, DATEADD(day, n, @date1 ))= 'Sunday'
 GROUP BY DATENAME(MONTH,DATEADD(day, n, @date1 ))

Demo

如果日期间隔超过一年,则使用以下代码,其中还包括订购。

DECLARE @date1 AS DATE, @date2 AS DATE;
SET @date1 = '2020-10-01';
SET @date2 = '2021-03-31';

WITH cte AS 
(
  SELECT 0 AS n
  UNION ALL
  SELECT n + 1 AS value
    FROM cte
   WHERE cte.n < DATEDIFF(day,@date1,@date2) 
)
SELECT DATEPART(yy, DATEADD(day, n, @date1)) AS [Year],
       DATENAME(MONTH,DATEADD(day, n, @date1)) AS [Month Name], 
       COUNT(*) AS [Count]
  FROM cte
 WHERE DATENAME(WEEKDAY, DATEADD(day, n, @date1))= 'Sunday'
 GROUP BY DATENAME(MONTH,DATEADD(day, n, @date1)),
          DATEPART(yy, DATEADD(day, n, @date1)),
          DATEPART(m, DATEADD(day, n, @date1))
 ORDER BY [Year], DATEPART(m, DATEADD(day, n, @date1))
 OPTION (MAXRECURSION 0)

Demo

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在6个月范围内的SQL Server中按月分组

来自分类Dev

按月分组显示SQL中重复的月份

来自分类Dev

在SQL Server中如何获取给定日期的所有月份和年份

来自分类Dev

在SQL Server中如何获取给定日期的所有月份和年份

来自分类Dev

在SQL中:如何获取按月分组的两列的百分比

来自分类Dev

SQL Server:获取给定月份的行顺序号

来自分类Dev

在函数SQL中获取给定月份的星期日

来自分类Dev

在SQL Server中获取给定月份和年份的所有日期

来自分类Dev

SQL按月分组并加入

来自分类Dev

T sql按月分组

来自分类Dev

如何获取 SQL Server 中特定行范围内特定列的总和?

来自分类Dev

在SQL中按月分组时保留年份

来自分类Dev

如何在SQL Server查询中获取给定ID的所有子级

来自分类Dev

SQL Server 查询以获取日期范围内所有月份的倒数第二个工作日的列表,其中包括日历中的假期

来自分类Dev

MS Access SQL:按月分组

来自分类Dev

按月分组并显示剩余总天数

来自分类Dev

如何在不同客户端的不同范围内获取 SQL-oracle 中两个日期之间的所有月份

来自分类Dev

按月分组的SQL查询并在SQL Server中计算AVG

来自分类Dev

SQL分组到范围内?

来自分类Dev

SQL Server-获取范围内的值的总和

来自分类Dev

SQL计算日期范围内的连续天数

来自分类Dev

SQL:获取范围内的数据

来自分类Dev

如何在 SQL Server 中查询特定日期范围内的数据

来自分类Dev

SQL Server,获取给定年份的所有周数?

来自分类Dev

SQL Server在日期范围内的聚合

来自分类Dev

SQL查询按月分组并显示记录的各个月总和

来自分类Dev

SQL - 计算按月分组的百分比列

来自分类Dev

获取给定日期范围内的月份的开始日期和结束日期

来自分类Dev

sql查询以检查给定范围内的数据和给定范围内的数据

Related 相关文章

  1. 1

    在6个月范围内的SQL Server中按月分组

  2. 2

    按月分组显示SQL中重复的月份

  3. 3

    在SQL Server中如何获取给定日期的所有月份和年份

  4. 4

    在SQL Server中如何获取给定日期的所有月份和年份

  5. 5

    在SQL中:如何获取按月分组的两列的百分比

  6. 6

    SQL Server:获取给定月份的行顺序号

  7. 7

    在函数SQL中获取给定月份的星期日

  8. 8

    在SQL Server中获取给定月份和年份的所有日期

  9. 9

    SQL按月分组并加入

  10. 10

    T sql按月分组

  11. 11

    如何获取 SQL Server 中特定行范围内特定列的总和?

  12. 12

    在SQL中按月分组时保留年份

  13. 13

    如何在SQL Server查询中获取给定ID的所有子级

  14. 14

    SQL Server 查询以获取日期范围内所有月份的倒数第二个工作日的列表,其中包括日历中的假期

  15. 15

    MS Access SQL:按月分组

  16. 16

    按月分组并显示剩余总天数

  17. 17

    如何在不同客户端的不同范围内获取 SQL-oracle 中两个日期之间的所有月份

  18. 18

    按月分组的SQL查询并在SQL Server中计算AVG

  19. 19

    SQL分组到范围内?

  20. 20

    SQL Server-获取范围内的值的总和

  21. 21

    SQL计算日期范围内的连续天数

  22. 22

    SQL:获取范围内的数据

  23. 23

    如何在 SQL Server 中查询特定日期范围内的数据

  24. 24

    SQL Server,获取给定年份的所有周数?

  25. 25

    SQL Server在日期范围内的聚合

  26. 26

    SQL查询按月分组并显示记录的各个月总和

  27. 27

    SQL - 计算按月分组的百分比列

  28. 28

    获取给定日期范围内的月份的开始日期和结束日期

  29. 29

    sql查询以检查给定范围内的数据和给定范围内的数据

热门标签

归档