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
Barbara StreisandOriginal
2025-01-16 14:00:06577Durchsuche

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>

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>

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>

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!

Stellungnahme:
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