Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich in T-SQL korrekt einen Datetime-Wert aus Tag, Monat und Jahr?

Wie erstelle ich in T-SQL korrekt einen Datetime-Wert aus Tag, Monat und Jahr?

Susan Sarandon
Freigeben: 2025-01-16 13:56:04
Original
562 Leute haben es durchsucht

How to Correctly Create a Datetime Value from Day, Month, and Year in T-SQL?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ü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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage