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

Comment obtenir le nom du mois à partir d'une date dans Oracle

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.