Bil*_*hip 9 t-sql sql-server-2005
我正在运行SQL Server 2005.从技术上讲,我知道如何从tsql datetime中抽出时间.
CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond
Run Code Online (Sandbox Code Playgroud)
问题是我有一个datetime字段,我需要基本上抓住时间部分转换为一个整数,特别是秒.然后我需要对这个整数做一堆算术,我不会在这里讨论.我搜索了stackoverflow,但没有找到特定于这个问题的问题.有任何想法吗?我真的在这里寻找最佳实践,我担心为这个特定目的创建一个udf,因为它完全抛出了查询优化器.
我看过这个网页所以请不要粘贴这个.:
http://forums.devx.com/showthread.php?171561-TSQL-Converting-HH-MM-SS-to-seconds
Mic*_*son 11
用途DATEPART:
(DATEPART(HOUR, GETDATE()) * 3600) +
(DATEPART(MINUTE, GETDATE()) * 60) +
(DATEPART(SECOND, GETDATE()))
Run Code Online (Sandbox Code Playgroud)
Cle*_*gic 11
只是我的2美分...这样做的另一种方式
编辑:添加SQL Server 2005的方法(谢谢Michael)
对于SQL Server 2008
SELECT DATEDIFF(SECOND, CONVERT(date, GETDATE()), GETDATE())
Run Code Online (Sandbox Code Playgroud)
对于sql server 2005+
SELECT DATEDIFF(SECOND, DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())), GETDATE())
Run Code Online (Sandbox Code Playgroud)