2010-09-07 13 views
52

¿Cómo obtener el tiempo para un determinado valor datetime?Obtener el tiempo de una fecha y hora usando T-SQL?

Tengo un datetime la base de datos de esta manera:

2010-09-06 17:07:28.170 

y quiero solamente la porción de tiempo:

17:07:28.170 

¿Hay una función para la que o algo?

Respuesta

17

En caso de SQL Server, esto debería funcionar

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

perfecto para SQL Server 2005 – element11

10

Suponiendo que el título de tu pregunta es correcta y desea que el tiempo:

SELECT CONVERT(char,GETDATE(),14) 

Editado para incluir milisegundo.

75

sólo para añadir que a partir de SQL Server 2008, no es un tipo de datos de tiempo de manera a partir de entonces se puede hacer:

SELECT CONVERT(TIME, GETDATE()) 

podría ser útil para aquellos que utilizan SQL 2008+ y encontrar a esta pregunta.

+2

Esta es una buena respuesta. @grady debes aceptar esto o pedir más información. –

+1

O más precisamente: convertir (TIEMPO [(precisión fraccionaria de segundo lugar)], OBTENER()) (use una precisión de 0 para truncar subsecondos) – tbone

+0

@MarkS esta no puede ser la respuesta aceptada, ya que no funciona en SQL 2000 (que el OP especifica explícitamente). No hay ningún tipo de HORA en SQL 2000. De hecho, no debería tener ningún voto, ya que no responde la pregunta. – DaveBoltman

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

en SQL Server 2008+

CAST(GETUTCDATE() AS TIME) 
Cuestiones relacionadas