sql >> Databasteknik >  >> RDS >> Oracle

Versaler av dag- och månadsnamn vid formatering av datum i Oracle

När du hämtar dagen och/eller månadsnamnet från ett datum i Oracle, kanske du vill returnera det med versaler, gemener eller skiftläge.

Lyckligtvis är detta lätt att göra. Resultatet återspeglar versaler i din formatmodell.

Exempel

När du använder TO_CHAR() för att returnera datumdelar från ett datumvärde använder du ett eller flera formatelement för att skapa en formatmodell. Den här formatmodellen avgör hur datumet formateras när det returneras.

Vi kan använda DAY och MONTH formatelement för att returnera dagens namn respektive månadsnamn.

Men viktigare är att versalerna vi använder för dessa formatelement avgör hur resultatet används.

Exempel:

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;

Resultat:

       month        Month        MONTH 
____________ ____________ ____________ 
december     December     DECEMBER    

Det är samma sak för DAY formatelement:

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;

Resultat:

         day          Day          DAY 
____________ ____________ ____________ 
thursday     Thursday     THURSDAY     

Det gäller även när du returnerar den förkortade versionen av dagen eller månaden.

Exempel:

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;

Resultat:

   mon    Mon    MON 
______ ______ ______ 
dec    Dec    DEC   

Och:

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;

Resultat:

    dy     Dy     DY 
______ ______ ______ 
thu    Thu    THU   

Året

Ett kanske mindre känt faktum är att Oracle Database också tillhandahåller formatelement som återger hela året preciserat. Närmare bestämt YEAR och SYEAR (för att tillgodose eller före BC datum).

Användningen av versaler i dessa formatelement påverkar också utdata:

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;

Resultat:

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

Och:

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;

Resultat:

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

När du använder skiftläge med Syear formatelement måste vi komma ihåg att endast det första tecknet – S tecken – står med versaler och alla återstående tecken är gemener (inklusive Y tecken):


  1. PostgreSQL Skapa schema

  2. Finns det något sätt att inaktivera uppdateringar/borttagningar men ändå tillåta triggers att utföra dem?

  3. psql:FATAL:databasen <användare> finns inte

  4. VISA TABELLER i MySQL