【发布时间】:2017-03-20 22:38:22
【问题描述】:
我正在尝试在 sql 查询中将开始日期设置为星期五。我已经完成了,如下所示。我现在需要做的是显示周五和周六之间的所有 GameID,它每周都会刷新(这样每周都会显示该周内玩过的其他游戏)。
我是 SQL 的初学者,非常感谢任何帮助!
我试过下面的sql查询。
DECLARE @StartFriday datetime
DECLARE @EndSaturday datetime
SET DATEFIRST 6 -- Set the start of the week to Friday
SELECT *
FROM
(
SELECT GameDate,
DATEADD(w, 0, DATEADD(w, DATEDIFF(w, 0,GETDATE()), -5)) AS 'StartFriday',
DATEADD(w, 0, DATEADD(w, DATEDIFF(w, 0,GETDATE()), 1)) AS 'EndSaturday'
FROM VW_Resultaat_Score
WHERE GameDate BETWEEN 'StartFriday' AND 'EndSaturday' --Show all GameDates between @StartFriday and @EndSaturday
)
我希望能得到任何帮助!
干杯
【问题讨论】:
-
首先,
SET DATEFIRST 6将其设置为星期六开始,而不是星期五。您想使用5。其次,你从这个查询中得到了什么? -
您的
where子句试图将日期与两个字符串文字进行比较,这两个文字都不包含日期。至于列别名,我可以提供一些建议阅读:Is it a String Literal or an Alias?.
标签: sql sql-server tsql datediff dateadd