Dans SQL Server, vous pouvez utiliser le DAY()
fonction pour renvoyer la partie "jour" d'une date. Cette fonction renvoie un entier qui représente le jour du mois (pas le jour de la semaine).
Vous trouverez ci-dessous des exemples d'utilisation de cette fonction.
Syntaxe
La syntaxe ressemble à ceci :
DAY ( date )
Où date
est une expression qui se résout en l'un des types de données suivants :
- date
- dateheure
- datetimeoffset
- datetime2
- petite date/heure
- temps
Il peut s'agir d'une expression de colonne, d'une expression, d'un littéral de chaîne ou d'une variable définie par l'utilisateur.
Exemple
Voici un exemple basique de son fonctionnement :
SELECT SYSDATETIME() AS 'Date', DAY(SYSDATETIME()) AS 'Day';
Résultat :
+-----------------------------+-------+ | Date | Day | |-----------------------------+-------| | 2018-06-18 00:20:22.1284540 | 18 | +-----------------------------+-------+
Donc le DAY()
la fonction a pu extraire le jour de la datetime2 valeur (qui a été retournée par le SYSDATETIME()
fonction).
Date fournie sous forme de littéral de chaîne
Voici un exemple où la date est fournie sous forme de littéral de chaîne.
SELECT DAY('2019-01-07') AS Result;
Résultat :
+----------+ | Result | |----------| | 7 | +----------+
Et voici un exemple où la date est fournie dans un format différent :
SELECT DAY('07/01/2017') AS Result;
Résultat :
+----------+ | Result | |----------| | 1 | +----------+
Cependant, il est généralement préférable d'éviter d'utiliser des dates dans de tels formats. Si vous devez le faire, vous devrez tenir compte des paramètres de langue et/ou des paramètres de format de date de la session en cours.
Paramètres de langue
La sortie de l'exemple précédent dépendra des paramètres de langue et/ou des paramètres de format de date de la session en cours.
Lorsque nous définissons la langue, le format de date est implicitement défini en même temps.
Voici ce qui se passe lorsque nous fournissons le même argument de date dans deux environnements linguistiques différents.
britannique
SET LANGUAGE British; SELECT DAY('07/01/2017') AS Result;
Résultat :
+----------+ | Result | |----------| | 7 | +----------+
us_English
SET LANGUAGE us_English; SELECT DAY('07/01/2017') AS Result;
Résultat :
+----------+ | Result | |----------| | 1 | +----------+
Paramètres de format de date
Les paramètres de format de date peuvent remplacer les paramètres de langue, vous devez donc également être conscient de ce paramètre. Par exemple, nous pourrions utiliser us_English pour notre langue (qui a un format de date par défaut de mdy ), mais nous pourrions remplacer le format de date par dmy .
Voici un exemple :
us_English - Format de date par défaut
Ici, nous définissons la langue sur us_English , qui définit implicitement le format de date sur myy .
SET LANGUAGE us_English; SELECT DAY('07/01/2017') AS Result;
Résultat :
+----------+ | Result | |----------| | 1 | +----------+
us_English – Remplacer le format de date
Ici, nous définissons la langue sur us_English (qui définit implicitement le format de date), mais ensuite nous définissons explicitement le format de date sur dmy . Cela remplace le format de date implicitement défini lorsque nous avons défini la langue.
SET LANGUAGE us_English; SET DATEFORMAT dmy; SELECT DAY('07/01/2017') AS Result;
Résultat :
+----------+ | Result | |----------| | 7 | +----------+
Renvoyer le nom du jour
Si vous devez renvoyer le nom du jour (par opposition au numéro du jour), consultez 3 façons d'obtenir le nom du jour à partir d'une date dans SQL Server.