我有开始日期和结束日期。我想使用datepart来检查周日之间是否有任何日期。我如何获得介于两者之间的日期?由于他们不在某个领域,我无法选择它们。
答案 0 :(得分:0)
为此,日历表会派上用场,但除非您已经有一个日历表,否则您可以使用数字序列在开始日期和结束日期之间生成一系列日期,并测试系列中每个日期的工作日,如下所示。
SET DATEFIRST 1 --set the start of the week to Monday.
DECLARE @startdate date = '2014-10-01', @enddate date = '2014-10-31'
SELECT DATEADD(DAY,number,@startdate)
FROM master..spt_values
WHERE type = 'P'
AND DATEADD(DAY,number,@startdate) <= @enddate
AND DATEPART(DW,DATEADD(DAY,number,@startdate)) IN (6,7)
此代码将列出十月的所有星期六和星期日,结果将是:
2014-10-04
2014-10-05
2014-10-11
2014-10-12
2014-10-18
2014-10-19
2014-10-25
2014-10-26