我正在运行 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
When datepart is week (wk, ww) or weekday (dw), the return value depends on the value that is set by using SET DATEFIRST.
关于sql-server - 如何修改 SQL 查询以仅输出特定时间段内周六和周日的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256699/