Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Combinando (concatenando) data e ora in un datetime

Supponendo che i tipi di dati sottostanti siano data/ora/data/ora:

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

Questo convertirà CollectionDate e CollectionTime per creare sequenze di caratteri, combinarle e quindi convertirle in un datetime .

I parametri da CONVERT sono data_type , expression e lo style opzionale (vedi sintassi documentazione ).

Il data e ora style valore 112 converte in un yyyymmdd ISO formato. Lo style valore 108 converte in hh:mi:ss formato. Evidentemente entrambi sono lunghi 8 caratteri ed è per questo che il data_type è CHAR(8) per entrambi.

La sequenza di caratteri combinata risultante è nel formato yyyymmdd hh:mi:ss e quindi convertito in un datetime .