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

Come combinare la data di un campo con l'ora di un altro campo - MS SQL Server

Puoi semplicemente aggiungere i due.

  • se la Time part della tua Date la colonna è sempre zero
  • e la Date part del tuo Time anche la colonna è sempre zero (data base:1 gennaio 1900)

La loro aggiunta restituisce il risultato corretto.

SELECT Combined = MyDate + MyTime FROM MyTable

Razionale (complimenti a ErikE/dnolan)

Funziona così a causa del modo in cui la data viene memorizzata come due Integers a 4 byte con i 4 byte a sinistra come date e i 4 byte di destra sono il time . È come fare $0001 0000 + $0000 0001 = $0001 0001

Modifica relativa ai nuovi tipi di SQL Server 2008

Date e Time sono tipi introdotti in SQL Server 2008 . Se insisti per aggiungere, puoi usare Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)

Modifica2 relativa alla perdita di precisione in SQL Server 2008 e versioni successive (complimenti a Martin Smith)

Dai un'occhiata a Come combinare data e ora in datetime2 in SQL Server? per prevenire la perdita di precisione con SQL Server 2008 e versioni successive.