Sql 让日期在一定范围内

Sql 让日期在一定范围内,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我有开始日期和结束日期。我想使用datepart来检查两个日期之间是否有任何一个是在周末。我怎样才能知道两者之间的日期?因为它们不在字段中,所以我无法选择它们。对于这一点,日历表很方便,但除非您已经有了日历表,否则您可以使用数字序列在开始日期和结束日期之间生成一系列日期,并测试序列中每个日期的工作日,如下所示 SET DATEFIRST 1 --set the start of the week to Monday. DECLARE @startdate date = '2014-10-01',

我有开始日期和结束日期。我想使用datepart来检查两个日期之间是否有任何一个是在周末。我怎样才能知道两者之间的日期?因为它们不在字段中,所以我无法选择它们。

对于这一点,日历表很方便,但除非您已经有了日历表,否则您可以使用数字序列在开始日期和结束日期之间生成一系列日期,并测试序列中每个日期的工作日,如下所示

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)

你真的需要在这两个日期之间找到日期吗,或者你知道它跨越了一个周末吗?谢谢jpw。你能解释where type='P'的作用吗?我也需要为统计假期做这个,所以是的,用户2321368我需要实际日期。。。但是我一步一个脚印。@brndnmlk系统表主控器..spt_值包含不同类型的数据,type='p'恰好是一个整数序列0-2047,可以用来生成日期序列和其他内容。
2014-10-04
2014-10-05
2014-10-11
2014-10-12
2014-10-18
2014-10-19
2014-10-25
2014-10-26