DateTime 从午夜到毫秒

Use*_*ser 3 datetime sql-server-2005

如何将给定的时间部分转换DATETIME为自午夜以来的毫秒数?例如,

'2011-08-29 00:00:00' -> 0
'2011-08-28 00:00:00' -> 0
'2011-08-29 01:00:00' -> 3600000
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 2005 中有什么简单的方法可以做到这一点吗?

Mar*_*ith 5

WITH Dates(D) AS
(
SELECT { ts '2011-08-29 00:00:00.000' } UNION ALL
SELECT { ts '2011-08-28 00:00:00.000' } UNION ALL
SELECT { ts '2011-08-29 01:00:00.000' }
)
SELECT  DATEDIFF(ms, 0,
                 DATEADD(Day, 0 - DATEDIFF(Day, 0, D), D))
FROM Dates   
Run Code Online (Sandbox Code Playgroud)