回答
declare @date as datetime
set @date = getdate()
Select Cast(Floor(Cast(@date as float)) as DateTime)
一個替代方案可以完成同樣的任務,具體取決於您在何處使用它。這也可以用在一個完整的腳本不可能的視圖中。
SELECT CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, GETDATE())))
我修改了前一個,使其看起來與你的相似。謝謝。 – Rabin 2011-05-16 10:17:35
在2k8之前,我總是;
DATEADD(DAY, DATEDIFF(DAY, 0, datecol), 0)
哎呀,看起來我錯過了這個答案,當我貼我的。你說的是「2k8之前」,但是在性能比較中,我將鏈接(下面)的日期投射出現爲最慢的可用選項(在CPU時間中);你在做一些不同的事情嗎?或者它只是不夠重要? – Tao 2011-05-18 08:33:01
就我個人而言,我認爲在大多數情況下,像這樣的轉換的性能差異並不重要,在2k8中,您可以將'cast(getdate()as date)' – 2011-05-18 09:05:26
由於所有以前的答案都是一樣的,我會添加其他「好」的選擇,我知道的:
SELECT DateAdd(Day, 0, DateDiff(Day, 0, GetDate()))
這是由一些/許多人首選,因爲它不依賴於DateTime/SmallDateTime中整數表示日期未記錄/不受支持的事實。
在SqlServerCentral.com論壇上有關於此主題的有趣討論,但我無法很快找到鏈接,對不起。
UPDATE:蓋爾肖貼的常用方法一個很好的快速性能對比(這顯然是一個最快,但只能通過V少量):http://sqlinthewild.co.za/index.php/2008/09/04/comparing-date-truncations/
- 1. 日期時間投在SQL Server 2005
- 2. 存儲SQL Server 2005的日期時間
- 3. SQL Server 2005日期時間數學
- 4. 檢索SQL Server中記錄的日期時間的時區(2005)
- 5. 使用SQL Server 2008和SQL Server 2005和日期時間
- 6. 如何在SQL Server 2005中插入當前日期時間
- 7. 在SQL Server 2005中按日期/時間查詢
- 8. 在SQL Server 2005 Express中查詢日期時間
- 9. 在SQL Server 2005中無時間選擇日期值
- 10. 日期時間轉換在SQL Server 2005中
- 11. SQL Server 2005中的高精度日期/時間戳
- 12. 如何轉換如'22/03/2005' 的日期時間在SQL Server
- 13. SQL Server 2005比較日期
- 14. 僅在SQL Server 2005中存儲日期
- 15. 插入日期時間到Sql Server 2005中
- 16. 轉換日期時間字段在SQL Server 2005
- 17. 日期時間問題2005
- 18. CAST日期和時間在SQL Server中
- 19. 在SQL Server中播放日期時間
- 20. 需要一個日期而不是日期時間在SQL Server 2005 with dateadd
- 21. SQL Server日期時間ss.mmmZ
- 22. 如何在SQL Server 2005中減去兩個日期時間值的小時數
- 23. 使用SQL Server 2005日期時間作爲實體框架的日期
- 24. SQL Server中的日期時間?
- 25. Microsoft SQL Server 2005時間日期數據類型
- 26. SQL Server 2005 - 檢查空日期時間值
- 27. Microsoft SQL Server 2005將日期/時間轉換爲字符串
- 28. SQL Server 2005日期時間戳記查詢
- 29. SQL Server 2005組由相同列但日期和時間不同?
- 30. SQL Server 2005日期時間(僅返回hh:mm)
非常感謝你。 – Rabin 2011-05-16 10:16:38