Viele Datenbankdesigns speichern Datums- und Uhrzeitinformationen in zwei separaten Spalten. In dieser Anleitung wird erläutert, wie Sie diese effizient in einer einzigen datetime
-Spalte in MS SQL Server kombinieren.
Angenommen, Ihre Spalte „Datum“ enthält nur Datumswerte (Zeitanteil ist Null) und Ihre Spalte „Zeit“ enthält nur Zeitwerte (Datumsanteil ist der 1. Januar 1900), funktioniert überraschenderweise eine einfache Additionsoperation:
<code class="language-sql">SELECT CombinedDateTime = MyDate + MyTime FROM MyTable;</code>
Diese scheinbar unkomplizierte Ergänzung nutzt die interne Darstellung von datetime
-Werten in älteren SQL Server-Versionen. Jeder datetime
-Wert wird als zwei 4-Byte-Ganzzahlen gespeichert: eine für das Datum und eine für die Uhrzeit. Durch das Addieren wird eine bitweise Kombination durchgeführt, die zu einem einzelnen datetime
-Wert führt.
Für SQL Server 2008 und höher wurden neben DATE
und TIME
auch die Datentypen DATETIME
und DATETIME2
eingeführt. Die direkte Addition entfällt. Um DATE
und TIME
in diesen neueren Versionen zu kombinieren, ist die explizite Umwandlung in DATETIME
entscheidend:
<code class="language-sql">SELECT CombinedDateTime = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable;</code>
Darüber hinaus kann das direkte Hinzufügen von datetime2
-Werten zu einem Präzisionsverlust führen. Um die Genauigkeit sicherzustellen, konvertieren Sie vor dem Kombinieren in DATETIME
:
<code class="language-sql">SELECT CombinedDateTime = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable;</code>
Dieser Ansatz garantiert eine präzise und zuverlässige Kombination Ihrer Datums- und Uhrzeitkomponenten in einer einzigen datetime
Spalte, unabhängig von Ihrer SQL Server-Version.
Das obige ist der detaillierte Inhalt vonWie kann ich separate Datums- und Uhrzeitspalten in einer einzigen DateTime-Spalte in MS SQL Server kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!