我一直想知道sql
服务器中是否有任何运算符/函数可以告诉给定日期之间的工作日。
示例:11-19-2016 to 11-29-2016
我想检查那天之间是否有星期二?
答案 0 :(得分:1)
试试这个:
declare @start varchar(100)='11-19-2016'
declare @end varchar(100)='11-29-2016'
;with dateRange as
(
select date = dateadd(dd, 1, @start)
where dateadd(dd, 1, @start) < @end
union all
select dateadd(dd, 1, date)
from dateRange
where dateadd(dd, 1, date) < @end
)
select date,DATENAME(dw,CAST(DATEPART(m, GETDATE()) AS VARCHAR)
+ '/'+ CAST(DATEPART(d, date) AS VARCHAR)
+ '/'+ CAST(DATEPART(yy, getdate()) AS VARCHAR)) as 'Day'
from dateRange where (DATENAME(dw,CAST(DATEPART(m, GETDATE()) AS VARCHAR)
+ '/'+ CAST(DATEPART(d, date) AS VARCHAR)
+ '/'+ CAST(DATEPART(yy, getdate()) AS VARCHAR)))='Tuesday'
答案 1 :(得分:1)
下面的查询使用递归查询来展开日期范围。
然后使用DATEPART从中选择星期二。
但也可以使用DATENAME。
Observable