web-dev-qa-db-fra.com

Obtenez l'heure d'une date-heure en utilisant T-SQL?

Comment obtenir le temps pour une valeur donnée datetime?

J'ai un datetime dans la base de données comme ceci:

2010-09-06 17:07:28.170

et ne veulent que la portion de temps:

17:07:28.170

Y at-il une fonction pour cela ou quelque chose?

60
grady

Juste pour ajouter que, à partir de SQL Server 2008, il existe un type de données TIME, vous pouvez donc désormais:

SELECT CONVERT(TIME, GETDATE())

Cela pourrait être utile pour ceux qui utilisent SQL 2008+ et trouvent cette question.

91
AdaTheDev

Dans le cas de SQL Server, cela devrait fonctionner

SELECT CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond
19
Jagmag

Essaye ça

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

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

11
maurox

En supposant que le titre de votre question est correct et que vous voulez l'heure:

SELECT CONVERT(char,GETDATE(),14) 

Édité pour inclure la milliseconde.

10
Michael Shimmins
CAST(CONVERT(CHAR(8),GETUTCDATE(),114) AS DATETIME)

DANS SQL Server 2008+

CAST(GETUTCDATE() AS TIME)
4
Simmo