2010-09-07 49 views
52

如何獲得給定datetime值的時間?使用T-SQL獲取日期時間?

我在數據庫中的datetime這樣的:

2010-09-06 17:07:28.170 

,並希望只有時間部分:

17:07:28.170 

是否有那個什麼功能?

回答

17

在SQL Server的情況下,這應該工作

SELECT CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond 
+0

完美的SQL Server 2005的 – element11 2016-02-04 19:37:09

10

假設你的問題的標題是正確的,你想要的時間:

SELECT CONVERT(char,GETDATE(),14) 

編輯,包括毫秒。

75

我想補充的是從SQL Server 2008,有一個時間數據類型,所以從那時起,你可以這樣做:

SELECT CONVERT(TIME, GETDATE()) 

可能是那些使用SQL 2008+,找到這個問題非常有用。

+2

這是一個很好的答案。 @grady你應該接受這個或要求更多的信息。 – 2015-03-13 13:53:15

+1

或更精確地說:轉換(TIME [(fractional second precision)],GETDATE())(使用精度0來截斷亞秒) – tbone 2016-06-23 21:39:14

+0

@MarkS這不能被接受,因爲它不適用於SQL 2000 OP顯式指定)。在SQL 2000中沒有TIME類型。實際上它不應該有任何投票,因爲它不回答問題。 – DaveBoltman 2017-11-27 16:11:05

4
CAST(CONVERT(CHAR(8),GETUTCDATE(),114) AS DATETIME) 

在SQL Server 2008+

CAST(GETUTCDATE() AS TIME)