Maison >base de données >tutoriel mysql >Comment créer une valeur datetime à partir de composants jour, mois et année distincts dans T-SQL ?
Construction de valeurs DATETIME dans T-SQL à partir de parties de date individuelles
Dans les anciennes versions de SQL Server (comme SQL Server 2005), créer une valeur DATETIME
directement à partir de composants jour, mois et année distincts peut être délicat et sujet à des erreurs. Ce guide présente plusieurs méthodes pour y parvenir de manière fiable.
Méthode 1 : Utiliser DATEADD
pour la construction Datetime
Cette méthode exploite la fonction DATEADD
pour construire le DATETIME
étape par étape :
<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>
La soustraction de 1 de @DayOfMonth
et @Month
explique le fait que DATEADD
fonctionne avec des décalages par rapport à la date de base (1er janvier 1900).
Méthode 2 : DATEADD
Syntaxe alternative
Une approche plus concise utilisant DATEADD
est :
<code class="language-sql">SELECT DATEADD(yy, @Year - 1900, DATEADD(m, @Month - 1, @DayOfMonth -1));</code>
On obtient le même résultat avec une disposition légèrement différente des DATEADD
appels.
Méthode 3 : DATEFROMPARTS
(SQL Server 2012 et versions ultérieures)
SQL Server 2012 et les versions ultérieures offrent la fonction DATEFROMPARTS
pratique :
<code class="language-sql">SELECT DATEFROMPARTS(@Year, @Month, @DayOfMonth);</code>
Il s'agit de la méthode la plus simple si votre version de SQL Server la prend en charge.
Gérer les années bissextiles
Alors que DATEFROMPARTS
gère automatiquement les années bissextiles, les méthodes DATEADD
sont suffisamment robustes pour les gérer également correctement. Aucun ajustement particulier n'est nécessaire pour les années bissextiles dans les exemples fournis.
Choisissez la méthode la plus adaptée à votre version de SQL Server et à votre style de codage. DATEFROMPARTS
est l'approche privilégiée pour sa simplicité et sa clarté si votre version de SQL Server le permet.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!