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

Cómo combinar la fecha de un campo con la hora de otro campo - MS SQL Server

Simplemente puede agregar los dos.

  • si la Time part de su Date la columna siempre es cero
  • y la Date part de tu Time la columna también es siempre cero (fecha base:1 de enero de 1900)

Agregarlos devuelve el resultado correcto.

SELECT Combined = MyDate + MyTime FROM MyTable

Fundamento (felicitaciones a ErikE/dnolan)

Funciona así debido a la forma en que la fecha se almacena como dos Integers de 4 bytes siendo los 4 bytes de la izquierda la date y los 4 bytes de la derecha son el time . Es como hacer $0001 0000 + $0000 0001 = $0001 0001

Editar sobre los nuevos tipos de SQL Server 2008

Date y Time son tipos introducidos en SQL Server 2008 . Si insiste en agregar, puede usar Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)

Edit2 sobre la pérdida de precisión en SQL Server 2008 y versiones posteriores (felicitaciones a Martin Smith)

Eche un vistazo a ¿Cómo combinar fecha y hora con datetime2 en SQL Server? para evitar la pérdida de precisión con SQL Server 2008 y versiones posteriores.