如何获取列中日期之间的天数

时间:2019-08-08 03:25:21

标签: sql sql-server date

我有一个员工计划表,该表存储轮班组和工作日日期。该表如下所示:

shift_group    schedule_date
------------------------------
Shift 1         2014-11-22 
Shift 1         2014-11-23 
Shift 1         2014-11-24 
Shift 1         2014-11-25 
Shift 1         2014-11-26 
Shift 1         2014-11-27 
Shift 1         2014-11-28 
Shift 1         2014-11-29 
Shift 1         2014-11-30 
Shift 2         2014-11-25 
Shift 2         2014-11-26 
Shift 2         2014-11-27 
Shift 2         2014-11-28 
Shift 2         2014-11-29 
Shift 2         2014-11-30
Shift 1         2014-12-01
Shift 1         2014-12-02
Shift 1         2014-12-03
Shift 1         2014-12-04
Shift 1         2014-12-05
Shift 1         2014-12-06
Shift 1         2014-12-07  

我发现的只是两个日期列之间的DATEDIFF。有什么方法可以计算每个班次的天数?例如:

shift_group  month   number of days
------------------------------------
Shift 1        11         9 
Shift 1        12         7
Shift 2        11         6 

1 个答案:

答案 0 :(得分:1)

我认为您正在尝试获取每月的轮班次数。

select shift_group  , datepart(month, schedule_date), count(1) from table
group by shift_group  , datepart(month, schedule_date)
order by shift_group