在开始和截至日期之间有时需要按月统计每月有多少天,可以通过下面的公式实现
- DECLARE
- @START AS DATE = '20200331', --将等号后面的内容替换为本报表的开始日期
- @END AS DATE = '20200405'; --将等号后面的内容替换为本报表的结束日期
- SELECT DISTINCT
- DBO.GETDF(2,DATEADD(DAY,N,@START)) As YM --YM按快表规则填入本报表的字段
- ,COUNT(DATEADD(DAY,N,@START))OVER(PARTITION BY DBO.GETDF(2,DATEADD(DAY,N,@START)) ) AS DAYS --YM按快表规则填入本报表的字段就是该月的天数
- FROM DBO.GETNUMS(0,DATEDIFF(DAY,@START,@END)) AS NUMS
复制代码 得到下面的结果
|
|
hessen