1. 查询:以“周”为单位
-- 查询以下时间段内分别有几周
-- 时间段:“2017-09-01”到“2017-10-1”
select number as wknum from master..spt_values
where type= ' p ' AND number >= datepart(wk,' 2017-9-1 ' ) and number <= datepart(wk,' 2017-10-1 ')
结果如下图
2. 查询:以“月”为单位
-- 查询以下时间段内分别有几月
-- 时间段:“2017-09-01”到“2017-10-1”
select number as wknum from master..spt_values
where type= ' p ' AND number >= datepart(mm,' 2017-9-1 ' ) and number <= datepart(mm,' 2017-10-1 ')
结果如下图
3. 查询:以“日”为单位
-- 查询以下时间段内分别有几日
-- 时间段:“2017-09-29”到“2017-10-3”
select convert(varchar(10),DATEADD(day,number,' 2017-9-29 ') ,120 ) wknum from master.dbo.spt_values where type= ' p ' AND number <= DATEDIFF(day,' 2017-9-29 ',' 2017-10-3 ')
结果如下图