Dans Oracle Database, le TO_CHAR(datetime)
nous permet de renvoyer une valeur datetime, formatée d'une manière que nous spécifions.
L'une des choses que nous pouvons faire est de renvoyer le nom du mois à partir d'une date.
Nom complet du mois
Lorsqu'il s'agit de renvoyer le nom du mois à partir d'une date, nous avons la possibilité d'obtenir le nom complet du mois ou sa version abrégée.
Pour obtenir le nom complet du mois, utilisez le MONTH
élément de format :
SELECT TO_CHAR(DATE '2035-10-03', 'MONTH')
FROM DUAL;
Résultat :
OCTOBER
Nom abrégé du mois
Pour obtenir le nom abrégé du mois, utilisez MON
:
SELECT TO_CHAR(DATE '2035-10-03', 'MON')
FROM DUAL;
Résultat :
OCT
Capitalisation
Nous pouvons utiliser la capitalisation pour déterminer la capitalisation de la sortie :
SELECT
TO_CHAR(DATE '2035-10-03', 'Month') AS "Month",
TO_CHAR(DATE '2035-10-03', 'month') AS "month",
TO_CHAR(DATE '2035-10-03', 'Mon') AS "Mon",
TO_CHAR(DATE '2035-10-03', 'mon') AS "mon"
FROM DUAL;
Résultat :
Month month Mon mon ____________ ____________ ______ ______ October october Oct oct
Langue
La langue du nom du mois est déterminée explicitement avec le NLS_DATE_LANGUAGE
paramètre d'initialisation ou implicitement avec le NLS_LANGUAGE
paramètre d'initialisation.
Nous pouvons définir explicitement la valeur du NLS_LANGUAGE
paramètre avec le ALTER SESSION
déclaration. Lorsque nous faisons cela, cela définit également implicitement la valeur du NLS_DATE_LANGUAGE
paramètre.
Cependant, la définition du NLS_DATE_LANGUAGE
paramètre ne change pas la valeur du NLS_LANGUAGE
paramètre. Cela nous permet de spécifier une langue différente pour les éléments de format qui renvoient des valeurs orthographiées, si nécessaire.
Voici un exemple de définition du NLS_DATE_LANGUAGE
paramètre dans une autre langue, puis récupère le nom du mois :
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT
TO_CHAR(DATE '2037-10-03', 'Month') AS "Full Month Name",
TO_CHAR(DATE '2037-10-03', 'Mon') AS "Short Month Name"
FROM DUAL;
Résultat :
Full Month Name Short Month Name __________________ ___________________ Oktober Okt
La langue par défaut peut être remplacée au niveau de la fonction par un troisième paramètre qui spécifie la langue :
ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT
TO_CHAR(
DATE '2037-10-03',
'Month',
'NLS_DATE_LANGUAGE = Spanish'
)
FROM DUAL;
Résultat :
Octubre
Il existe de nombreux autres éléments de format disponibles pour formater les valeurs datetime dans Oracle. Voir Liste des éléments de format Datetime dans Oracle pour une liste complète.