sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo lanzar el DateTime to Time

Time no se almacena con su formato de visualización en SQL Server.
Por lo tanto, desde la perspectiva del usuario, se puede decir que no tiene formato.
Por supuesto, eso no es completamente exacto ya que tiene un formato de almacenamiento , pero como usuario promedio no puede usarlo realmente.
Esto es cierto para todos los tipos de datos de fecha y hora:
Date , DateTimeOffset , DateTime2 , SmallDateTime , DateTime y Time .

Si necesita un formato, entonces no necesita transmitir a time pero a un char . Usa Convert para obtener el char necesitas:

SELECT CONVERT(char(10), [time], 108) as CSTTime 

Aquí hay algunos datos de fondo si está interesado:

En este artículo publicado en 2000, el escritor explica en profundidad cómo SQL Server trata las fechas y las horas. Dudo que algo significativo haya cambiado entre 2000 y 2015 en la forma en que SQL Server almacena date , time y datetime valores internamente.

Aquí están las citas relevantes, si no desea leerlo todo:

Entonces, ¿cómo almacena SQL Server internamente las fechas? Utiliza 8 bytes para almacenar un valor de fecha y hora:los primeros 4 para la fecha y los segundos 4 para la hora. SQL Server puede interpretar ambos conjuntos de 4 bytes como enteros.
........
........
SQL Server almacena el segundo entero para la hora como el número de tictac del reloj después de la medianoche. Un segundo contiene 300 tics, por lo que un tic equivale a 3,3 milisegundos (ms).

desde time en realidad se almacena como un número entero de 4 bytes, realmente no tiene un formato como parte integral del tipo de datos.

También puede consultar este artículo para obtener una explicación más detallada con ejemplos de código.