我鑄造了數億個數據點。我開始與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個操作來做同樣的事情?
我鑄造了數億個數據點。我開始與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個操作來做同樣的事情?
試試這個
select DATEADD(dd, DATEDIFF(dd, 0, COL),0) from TABLE
[哦,簡寫,它燒傷](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
如果它只是一個時間的驗證,你可能能夠避免任何一組與
where DateTimeWithTime >= DateTimeNoTime
and DateTimeWithTime < DataAdd(dd,1,DateTimeNoTime)
您可以使用下面的查詢與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'
你可以這樣做:'cast(left(col,10)as datetime)',但是我沒有看到問題你的方法。 – 2014-09-22 19:40:57
謝謝,但這也是做2操作? – 2014-09-22 19:41:26
我如何設置一個測試,告訴我每個人需要多少時間? – 2014-09-22 19:42:35