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.