2014-09-22 96 views
-1

我鑄造了數億個數據點。我開始與2008-10-20 01:33:20 023,我需要回到2008-10-20 00:00:00:000施法日期與00:00:00:00

我目前執行的方法就是:

SELECT CAST(CAST('2008-10-20 01:33:20 023' AS DATE) AS DATETIME 

這是執行兩個操作,因爲有2個轉換。

有沒有辦法只用1個操作來做同樣的事情?

+0

你可以這樣做:'cast(left(col,10)as datetime)',但是我沒有看到問題你的方法。 – 2014-09-22 19:40:57

+0

謝謝,但這也是做2操作? – 2014-09-22 19:41:26

+0

我如何設置一個測試,告訴我每個人需要多少時間? – 2014-09-22 19:42:35

回答

2

試試這個

select DATEADD(dd, DATEDIFF(dd, 0, COL),0) from TABLE 
+5

[哦,簡寫,它燒傷](http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/bad-habits-to-kick-using-shorthand-with-date-time-operations的.aspx)... – 2014-09-22 19:51:40

1

如果它只是一個時間的驗證,你可能能夠避免任何一組與

where DateTimeWithTime >= DateTimeNoTime 
    and DateTimeWithTime < DataAdd(dd,1,DateTimeNoTime) 
0

您可以使用下面的查詢與00獲得日期: 00:000

DECLARE @TestDate DateTime 
SET @TestDate = '2012-04-25 03:15.804' 
SELECT CAST(CONVERT(nvarchar(10), @TestDate, 101) AS DATETIME) 
RESULT: '2012-04-25 00:00:00.000' 
相關問題