Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich in T-SQL einen Datetime-Wert aus separaten Tages-, Monats- und Jahreskomponenten?

Wie erstelle ich in T-SQL einen Datetime-Wert aus separaten Tages-, Monats- und Jahreskomponenten?

Barbara Streisand
Freigeben: 2025-01-16 14:00:06
Original
576 Leute haben es durchsucht

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

Konstruieren von DATETIME-Werten in T-SQL aus einzelnen Datumsteilen

In älteren Versionen von SQL Server (wie SQL Server 2005) kann das Erstellen eines DATETIME-Werts direkt aus separaten Tages-, Monats- und Jahreskomponenten schwierig und fehleranfällig sein. In diesem Leitfaden werden verschiedene Methoden beschrieben, um dies zuverlässig zu erreichen.

Methode 1: Verwendung von DATEADD für die Datetime-Konstruktion

Diese Methode nutzt die Funktion DATEADD, um DATETIME Schritt für Schritt zu erstellen:

<code class="language-sql">DECLARE @DayOfMonth TINYINT; SET @DayOfMonth = 13;
DECLARE @Month TINYINT; SET @Month = 6;
DECLARE @Year INT; SET @Year = 2006;

SELECT DATEADD(day, @DayOfMonth - 1, 
              DATEADD(month, @Month - 1, 
                      DATEADD(year, @Year - 1900, 0)));</code>
Nach dem Login kopieren

Die Subtraktion von 1 von @DayOfMonth und @Month berücksichtigt die Tatsache, dass DATEADD mit Offsets vom Basisdatum (1. Januar 1900) arbeitet.

Methode 2: Alternative DATEADDSyntax

Ein prägnanterer Ansatz mit DATEADD ist:

<code class="language-sql">SELECT DATEADD(yy, @Year - 1900,  
               DATEADD(m, @Month - 1, @DayOfMonth -1));</code>
Nach dem Login kopieren

Das gleiche Ergebnis wird mit einer etwas anderen Anordnung der DATEADDAufrufe erreicht.

Methode 3: DATEFROMPARTS (SQL Server 2012 und höher)

SQL Server 2012 und spätere Versionen bieten die praktische DATEFROMPARTSFunktion:

<code class="language-sql">SELECT DATEFROMPARTS(@Year, @Month, @DayOfMonth);</code>
Nach dem Login kopieren

Dies ist die einfachste Methode, wenn Ihre SQL Server-Version sie unterstützt.

Umgang mit Schaltjahren

Während DATEFROMPARTS Schaltjahre automatisch verarbeitet, sind die DATEADD-Methoden robust genug, um sie auch korrekt zu verarbeiten. Für Schaltjahre in den bereitgestellten Beispielen sind keine besonderen Anpassungen erforderlich.

Wählen Sie die Methode, die für Ihre SQL Server-Version und Ihren Codierungsstil am besten geeignet ist. DATEFROMPARTS ist aufgrund seiner Einfachheit und Klarheit der bevorzugte Ansatz, sofern Ihre SQL Server-Version dies zulässt.

Das obige ist der detaillierte Inhalt vonWie erstelle ich in T-SQL einen Datetime-Wert aus separaten Tages-, Monats- und Jahreskomponenten?. 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