Получить время с использованием T-SQL? - PullRequest
59 голосов
/ 07 сентября 2010

Как получить время для данного datetime значения?

У меня есть datetime в базе данных, как это:

2010-09-06 17:07:28.170

и хотите только часть времени:

17:07:28.170

Есть ли функция для этого или что-то?

Ответы [ 5 ]

91 голосов
/ 07 сентября 2010

Просто добавьте, что в SQL Server 2008 есть тип данных TIME, так что теперь вы можете делать:

SELECT CONVERT(TIME, GETDATE())

Может быть полезно для тех, кто использует SQL 2008+ и находит этот вопрос.

19 голосов
/ 07 сентября 2010

В случае SQL Server это должно работать

SELECT CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond
11 голосов
/ 12 апреля 2012

Попробуйте это

SELECT CAST(DataField AS time(7)) AS 'time'

http://msdn.microsoft.com/en-us/library/bb677243.aspx

10 голосов
/ 07 сентября 2010

Предполагая, что заголовок вашего вопроса правильный и вам нужно время:

SELECT CONVERT(char,GETDATE(),14) 

Отредактировано для включения миллисекунды.

4 голосов
/ 07 сентября 2010
CAST(CONVERT(CHAR(8),GETUTCDATE(),114) AS DATETIME)

В SQL Server 2008 +

CAST(GETUTCDATE() AS TIME)
...