1.之前在需求中接触到一个统计本月出差总天数的报表,刚开始接到这个思路还不明确,其实细分下来还挺简单
2.用sqlserver写时间段,并且统计出该时间段在某月份出现多少天
模拟数据:
declare @days int,
@date_start date,
@date_end date;
set @date_start='2020-02-01'; --开始时间 2020-02-01
set @date_end='2020-05-01'; --结束时间 2020-05-01
set @days=datediff(day,@date_start,@date_end);
select convert(varchar(7),A.days,120) as 年月份,count(A.days) 天数
from
(select DATEADD(dd,number,@date_start) as days
from master.dbo.spt_values
where type='p' and number<=@days)A
group by convert(varchar(7),days,120)
输出的结果为: