3
A
回答
7
您可以将您的日期转换为周数和比较这对从当前日期的周数。同样,你也需要比较一年,所以你不会得到去年的周。
WHERE DATEPART(wk, [Order].SubmittedDate) = DATEPART(wk, GETDATE())
AND DATEPART(yy, [Order].SubmittedDate) = DATEPART(yy, GETDATE())
0
试试这个:
WHERE [Order].SubmittedDate BETWEEN
DATEADD(d, - DATEPART(dw, GETDATE()) + 1, GETDATE()) AND
DATEADD(d, 7 - DATEPART(dw, GETDATE()) , GETDATE())
也许这可以跑得更快,因为并不需要进行评估每次:
DECLARE @StartDate DATETIME,
@EndDate DATETIME
SELECT @StartDate = DATEADD(d, - DATEPART(dw, GETDATE()) + 1, GETDATE()),
@EndDate = DATEADD(d, 8 - DATEPART(dw, GETDATE()) , GETDATE())
-- // Strip time part, so week starts on Sunday 00:00
SELECT @StartDate = CAST(FLOOR(CAST(@StartDate AS FLOAT)) AS DATETIME),
@EndDate = CAST(FLOOR(CAST(@EndDate AS FLOAT)) AS DATETIME)
...
WHERE [Order].SubmittedDate >= @StartDate AND [Order].SubmittedDate < @EndDate
1
假设你总是意思是 “这一周” 和在将来没有提交日期的记录,我想可能是您可以这样做的情况:
WHERE [Order].SubmittedDate >= DATEADD(dd, -(DATEPART(dw, GETDATE()) -1), GETDATE())
如果日期干什么去到未来,充分限制本周是:
WHERE [Order].SubmittedDate >= DATEADD(dd, -(DATEPART(dw, GETDATE()) -1), GETDATE())
AND [Order].SubmittedDate < CAST(CONVERT(VARCHAR(10), DATEADD(dd, (8 - DATEPART(dw, GETDATE())), GETDATE()), 120) AS DATETIME)
我强烈推荐使用基于开始和结束日期这样的条款,因为这将使高效索引使用应该更好。
相关问题
- 1. DB2 Express如何与Sql Server Express进行比较?
- 2. 如何使用列名与SQL中的参数进行比较?
- 3. 将textbox.text值与SQL Server中的值进行比较
- 4. 将列名与Microsoft SQL Server中的相应值进行比较
- 5. SQL Server将类似的表格与查询进行比较
- 6. 如何比较使用SQL Server的软件版本?
- 7. 如何将列中的值与SQL Server中的长列表进行比较
- 8. 如何将数据文件与SQL Server数据库中的列进行比较?
- 9. 如何加入或与SQL Server中的计算列进行比较?
- 10. 如何存储日期并在sql server中进行比较?
- 11. 如何将文本文件的行与变量进行比较
- 12. 如何比较SQL Server中的几何?
- 13. SQL Server将一个表的行与其他表的所有行进行比较
- 14. 在SQL Server 2012中将两个nvarchar列与Unicode文本进行比较
- 15. 如何与JQuery RGB值进行比较?
- 16. 如何将Int64与Int64进行比较
- 17. Hack如何与C++进行比较?
- 18. 如何使用Filter将recyclerview中的originalList与filterList进行比较?
- 19. 如何比较SQL Server 2005中的DTS
- 20. SQL查询比较2周
- 21. 如何将UITextField的文本与字符串进行比较?
- 22. 如何将$ _POST与表中的现有文本进行比较?
- 23. 如何在XQuery中将SQL:变量与NULL进行比较
- 24. SQL行之间的版本比较1天,1周前
- 25. 比较SQL Server表中的同一行
- 26. 如何改进SQL Server查询的性能比较
- 27. SQL Server - 使用IN比较Varchar值
- 28. 比较使用SQL Server数据库
- 29. 如何使用UDF将列与值进行比较?
- 30. 比较日期db2/400与SQL Server
'[Order] .SubmittedDate BETWEEN @StartOfThisWeek AND @ EndOfThisWeek' – 2010-01-14 11:43:43