Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich in T-SQL korrekt einen Datetime-Wert aus Tag, Monat und Jahr?
T-SQL-Datums- und Uhrzeitwertkonstruktion: Erstellen Sie Datum und Uhrzeit korrekt aus Tages-, Monats- und Jahreswerten
Das Konvertieren diskreter Datumskomponenten in einen einzelnen Datums-/Uhrzeitwert ist eine häufige Aufgabe in SQL Server. In diesem Leitfaden erfahren Sie, wie Sie aus Tages-, Monats- und Jahreswerten korrekt eine Datums-/Uhrzeitangabe erstellen, um eine genaue Datumsdarstellung sicherzustellen.
Das Problem
Die Verwendung der DATEPART-Funktion zum Kombinieren einzelner Datumskomponenten führt häufig zu falschen Ergebnissen. Der in der Frage angegebene Ausdruck CAST(DATEPART(year, DATE) '-' DATEPART(month, DATE) '-' DATEPART(day, DATE) AS DATETIME)
setzt den Datum/Uhrzeit-Wert nicht korrekt zusammen.
Lösung
Der beste Weg, eine Datums- und Uhrzeitangabe aus einer bestimmten Datumskomponente zu erstellen, besteht darin, arithmetische Operationen an den Werten durchzuführen. Die folgende Aussage demonstriert diesen Ansatz:
<code class="language-sql">SELECT DateAdd(day, @DayOfMonth - 1, DateAdd(month, @Month - 1, DateAdd(Year, @Year-1900, 0)))</code>
Diese Anweisung nutzt die interne Darstellung von Datums-/Uhrzeitwerten in SQL Server, wobei der erste Teil die Anzahl der Tage seit dem 1. Januar 1900 und der zweite Teil den Bruchteil des Tages (die Uhrzeit) darstellt. .
Alternativen
Ab SQL Server 2012 wurde eine integrierte Funktion namens DATEFROMPARTS(year, month, day)
eingeführt, die direkt für diesen Zweck verwendet werden kann:
<code class="language-sql">SELECT DATEFROMPARTS(@Year, @Month, @DayOfMonth)</code>
Überlegungen zum Schaltjahr
Achten Sie bei Schaltjahren immer darauf, zuerst die Jahresaddition durchzuführen, um den zusätzlichen Tag im Februar zu berücksichtigen. Die folgende geänderte Anweisung löst das Problem:
<code class="language-sql">SELECT DateAdd(month, @Month - 1, DateAdd(year, @Year-1900, @DayOfMonth - 1))</code>
Fazit
Durch den Einsatz dieser Methoden können Entwickler effizient Datums-/Uhrzeitwerte aus einzelnen Tages-, Monats- und Jahreskomponenten in T-SQL erstellen und so die Genauigkeit der Datumsdarstellung und die korrekte Handhabung von Schaltjahren sicherstellen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich in T-SQL korrekt einen Datetime-Wert aus Tag, Monat und Jahr?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!