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

2 façons d'obtenir le jour d'une date dans Oracle

Vous trouverez ci-dessous deux fonctions qui peuvent être utilisées pour renvoyer le jour à partir d'une date dans Oracle Database.

Le EXTRACT() Fonction

Le EXTRACT(datetime) La fonction est utilisée pour extraire diverses parties datetime d'une valeur datetime. Cela inclut le jour.

Voici un exemple :

SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL;

Résultat :

25

C'est le DAY mot-clé qui extrait la partie jour de la date. Nous pouvons obtenir d'autres parties de date en les remplaçant par le mot-clé pertinent. Par exemple, YEAR , MONTH , HOUR , MINUTE , etc.

Nous pouvons également utiliser la fonction avec d'autres valeurs datetime, telles que TIMESTAMP , etc.

Le TO_CHAR(datetime) Fonction

Nous pouvons également utiliser le TO_CHAR(datetime) fonctionnent comme une méthode alternative pour obtenir le jour à partir d'une date.

Cette fonction accepte la date/heure ou la valeur d'intervalle comme premier argument et un modèle de format comme deuxième argument. La fonction convertit ensuite la valeur en un type de données de VARCHAR2 dans le format spécifié.

Le modèle de format spécifie le format pour lequel renvoyer la valeur datetime/intervalle. Le modèle de format consiste en un ou plusieurs éléments de format . Cela nous permet d'élaborer soigneusement les résultats pour refléter le format souhaité.

Si nous ne voulons renvoyer que le jour, nous pouvons utiliser l'un des éléments de format pour extraire le jour.

Jour du mois

Pour obtenir le jour du mois (entre 1 et 31), utilisez le DD élément de format :

SELECT TO_CHAR(DATE '2037-10-03', 'DD')
FROM DUAL;

Résultat :

03

Nom complet du jour

Pour obtenir le nom complet du jour, utilisez DAY :

SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;

Résultat :

SATURDAY

Nom abrégé du jour

Pour obtenir le nom abrégé du jour, utilisez DY :

SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;

Résultat :

SAT

Jour de l'année

Pour obtenir le jour de l'année (entre 1 et 366), utilisez le DDD élément de format :

SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
FROM DUAL;

Résultat :

276

Jour de la semaine

Pour obtenir le jour de la semaine (entre 1 et 7), utilisez le D élément de format :

SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Résultat :

6

Cet élément de format dépend du territoire NLS de la session. La valeur de le NLS_TERRITORY de mon système le paramètre est AUSTRALIA , et par conséquent, le samedi est considéré comme le sixième jour de la semaine.

Voici ce qui se passe si je change la valeur de mon NLS_TERRITORY paramètre à AMERICA et relancez la même requête :

ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;

Résultat :

7

Cette fois, le samedi est considéré comme le septième jour de la semaine.