我正在投射数亿个数据点。我从2008-10-20 01:33:20 023
开始,我需要返回2008-10-20 00:00:00:000
我目前正在执行此操作的方式是:
SELECT CAST(CAST('2008-10-20 01:33:20 023' AS DATE) AS DATETIME
这是执行两个操作,因为有2个CASTS。
有没有办法只用一次操作来做同样的事情?
答案 0 :(得分:2)
试试这个
select DATEADD(dd, DATEDIFF(dd, 0, COL),0) from TABLE
答案 1 :(得分:1)
如果只是一次验证,您可以避免使用
进行任何设置where DateTimeWithTime >= DateTimeNoTime
and DateTimeWithTime < DataAdd(dd,1,DateTimeNoTime)
答案 2 :(得分: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'