我正在运行SQL Server 2014
,并且我的以下查询运行良好。但是,我需要对其进行修改,以使其在查询中指定的时间段内仅输出StayDates
和Saturdays
的Sundays
。
我搜索了一些解决方案,但是我找到了一些难以理解的复杂解决方案。有人提到使用INTERVAL DAYOFWEEK
代码,但没有明确的解释让我测试代码。
这是我的查询当前的状态:
SELECT ResID, MIN(STAYDATE) AS 'Start Date',MAX(STAYDATE) AS 'End Date'
FROM RStayDate
WHERE StayDate BETWEEN '2014-10-01' AND '2014-12-31'
GROUP BY ResID
我不需要提供与查询中提到的特定时间段相关的所有记录,而是需要修改代码,以便仅将与周末(周六和周日)相关的记录制成表格。
最佳答案
具有DATEPART
功能:
SELECT ResID, MIN(STAYDATE) AS 'Start Date',MAX(STAYDATE) AS 'End Date'
FROM RStayDate
WHERE StayDate BETWEEN '2014-10-01' AND '2014-12-31' AND DATEPART(dw, STAYDATE) IN(7, 1)
GROUP BY ResID
@Richard提到它取决于设置,因此您应在此处进行检查:
https://msdn.microsoft.com/en-us/library/ms174420.aspx
当datepart是星期(wk,ww)或星期几(dw)时,返回值
取决于使用SET DATEFIRST设置的值。