Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So kombinieren Sie das Datum aus einem Feld mit der Uhrzeit aus einem anderen Feld - MS SQL Server

Sie können die beiden einfach hinzufügen.

  • wenn der Time part Ihres Date Spalte ist immer Null
  • und der Date part Ihrer Time Spalte ist auch immer Null (Basisdatum:1. Januar 1900)

Wenn Sie sie hinzufügen, wird das richtige Ergebnis zurückgegeben.

SELECT Combined = MyDate + MyTime FROM MyTable

Begründung (Danke an ErikE/dnolan)

Dies funktioniert aufgrund der Art und Weise, wie das Datum als zwei 4-Byte-Integers gespeichert wird wobei die linken 4 Bytes das date sind und die rechten 4 Bytes sind die time . Es ist wie $0001 0000 + $0000 0001 = $0001 0001

Bearbeitung bezüglich neuer SQL Server 2008-Typen

Date und Time sind Typen, die in SQL Server 2008 eingeführt wurden . Wenn Sie darauf bestehen, hinzuzufügen, können Sie Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) verwenden

Edit2 bezüglich Präzisionsverlust in SQL Server 2008 und höher (Huldigung an Martin Smith)

Werfen Sie einen Blick auf Wie kombiniert man Datum und Uhrzeit mit datetime2 in SQL Server? um Präzisionsverluste mit SQL Server 2008 und höher zu vermeiden.