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

Combinar (concatenar) fecha y hora en una fecha y hora

Suponiendo que los tipos de datos subyacentes son tipos de fecha/hora/fechahora:

SELECT CONVERT(DATETIME, CONVERT(CHAR(8), CollectionDate, 112) 
  + ' ' + CONVERT(CHAR(8), CollectionTime, 108))
  FROM dbo.whatever;

Esto convertirá CollectionDate y CollectionTime para char secuencias, combínelas y luego conviértalas en un datetime .

Los parámetros para CONVERT son data_type , expression y el style opcional (ver sintaxis documentación ).

fecha y hora style valor 112 convierte a ISO yyyymmdd formato. El style valor 108 convierte a hh:mi:ss formato. Evidentemente, ambos tienen 8 caracteres, por lo que data_type es CHAR(8) para ambos.

La secuencia de caracteres combinada resultante tiene el formato yyyymmdd hh:mi:ss y luego convertido a un datetime .