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

Capitalisation des noms de jour et de mois lors du formatage des dates dans Oracle

Lorsque vous obtenez le nom du jour et/ou du mois à partir d'une date dans Oracle, vous souhaiterez peut-être le renvoyer en majuscules, en minuscules ou en casse du titre.

Heureusement, c'est facile à faire. Le résultat reflète la capitalisation de votre modèle de format.

Exemple

Lors de l'utilisation de TO_CHAR() pour renvoyer des parties de date à partir d'une valeur de date, vous utilisez un ou plusieurs éléments de format pour produire un modèle de format. Ce modèle de format détermine comment la date est formatée lorsqu'elle est renvoyée.

Nous pouvons utiliser le DAY et MONTH éléments de format pour renvoyer respectivement le nom du jour et le nom du mois.

Mais surtout, la capitalisation que nous utilisons pour ces éléments de format détermine la capitalisation du résultat.

Exemple :

SELECT 
    TO_CHAR( DATE '2037-12-03', 'month' ) AS "month",
    TO_CHAR( DATE '2037-12-03', 'Month' ) AS "Month",
    TO_CHAR( DATE '2037-12-03', 'MONTH' ) AS "MONTH"
FROM DUAL;

Résultat :

       month        Month        MONTH 
____________ ____________ ____________ 
december     December     DECEMBER    

Il en est de même pour le DAY élément de format :

SELECT 
    TO_CHAR( DATE '2037-12-03', 'day' ) AS "day",
    TO_CHAR( DATE '2037-12-03', 'Day' ) AS "Day",
    TO_CHAR( DATE '2037-12-03', 'DAY' ) AS "DAY"
FROM DUAL;

Résultat :

         day          Day          DAY 
____________ ____________ ____________ 
thursday     Thursday     THURSDAY     

Cela s'applique également lors du retour de la version abrégée du jour ou du mois.

Exemple :

SELECT 
    TO_CHAR( DATE '2037-12-03', 'mon' ) AS "mon",
    TO_CHAR( DATE '2037-12-03', 'Mon' ) AS "Mon",
    TO_CHAR( DATE '2037-12-03', 'MON' ) AS "MON"
FROM DUAL;

Résultat :

   mon    Mon    MON 
______ ______ ______ 
dec    Dec    DEC   

Et :

SELECT 
    TO_CHAR( DATE '2037-12-03', 'dy' ) AS "dy",
    TO_CHAR( DATE '2037-12-03', 'Dy' ) AS "Dy",
    TO_CHAR( DATE '2037-12-03', 'DY' ) AS "DY"
FROM DUAL;

Résultat :

    dy     Dy     DY 
______ ______ ______ 
thu    Thu    THU   

L'année

Un fait peut-être moins connu est qu'Oracle Database fournit également des éléments de format qui renvoient l'année complète en toutes lettres. Plus précisément, YEAR et SYEAR (pour répondre aux besoins ou avant les dates de la Colombie-Britannique).

La capitalisation de ces éléments de format affecte également la sortie :

SELECT 
    TO_CHAR( DATE '2037-12-03', 'year' ) AS "year",
    TO_CHAR( DATE '2037-12-03', 'Year' ) AS "Year",
    TO_CHAR( DATE '2037-12-03', 'YEAR' ) AS "YEAR"
FROM DUAL;

Résultat :

                  year                   Year                   YEAR 
______________________ ______________________ ______________________ 
twenty thirty-seven    Twenty Thirty-Seven    TWENTY THIRTY-SEVEN    

Et :

SELECT 
    TO_CHAR( DATE '-2037-12-03', 'syear' ) AS "syear",
    TO_CHAR( DATE '-2037-12-03', 'Syear' ) AS "Syear",
    TO_CHAR( DATE '-2037-12-03', 'SYEAR' ) AS "SYEAR"
FROM DUAL;

Résultat :

                  syear                   Syear                   SYEAR 
_______________________ _______________________ _______________________ 
-twenty thirty-seven    -Twenty Thirty-Seven    -TWENTY THIRTY-SEVEN   

Lors de l'application de la casse du titre avec le Syear élément de format, nous devons nous rappeler que seul le premier caractère - le S caractère - est en majuscule et tous les caractères restants sont en minuscules (y compris le Y caractère):