Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

DATEFROMPARTS() Exemples dans SQL Server (T-SQL)

Vous pouvez utiliser le T-SQL DATEFROMPARTS() fonction dans SQL Server pour renvoyer une date valeur qui correspond aux parties de date que vous fournissez sous forme d'expressions entières.

La façon dont cela fonctionne est que vous fournissez trois valeurs (une pour chacune des année , mois , et jour valeurs), et SQL Server renverra une date valeur basée sur les valeurs que vous fournissez.

Exemples ci-dessous.

Syntaxe

Tout d'abord, voici la syntaxe :

DATEFROMPARTS ( year, month, day )

Voici ce que chaque argument peut être :

year
Une expression entière qui spécifie une année.
month
Une expression entière qui spécifie un mois, de 1 à 12.
day
Une expression entière qui spécifie un jour.

Exemple

Voici un exemple d'utilisation :

SELECT DATEFROMPARTS( 2021, 05, 10 ) AS Result;

Résultat :

+------------+
| Result     |
|------------|
| 2021-05-10 |
+------------+

Valeurs invalides

Vous devrez vous assurer que les parties de date sont fournies dans le bon ordre, sinon vous pourriez vous retrouver avec une erreur. Pire encore, vous n'obtiendrez peut-être pas d'erreur (si la portion de jour est de 12 ou moins) et vous pourriez donc manquer un problème majeur avec la façon dont la date est traduite.

Voici un exemple de valeur non valide :

SELECT DATEFROMPARTS( 2021, 30, 10 ) AS Result;

Résultat :

Cannot construct data type date, some of the arguments have values which are not valid. 

Cela se produit parce que nous avons fourni 30 comme mois. Cette partie n'acceptera que des valeurs comprises entre 1 et 12.

Valeurs nulles

Si l'un des arguments est une valeur nulle, le résultat est NULL .

Voici un exemple utilisant une valeur nulle :

SELECT DATEFROMPARTS( 2021, NULL, 10 ) AS Result;

Résultat :

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Par conséquent, il va probablement sans dire (mais je le dirai quand même), que si tous les arguments sont des valeurs nulles, le résultat est NULL :

SELECT DATEFROMPARTS( NULL, NULL, NULL ) AS Result;

Résultat :

+----------+
| Result   |
|----------|
| NULL     |
+----------+