sql >> Databasteknik >  >> RDS >> Oracle

Hur man får dagnamnet från ett datum i Oracle

Med Oracle Database kan vi använda den TO_CHAR(datetime) funktion för att returnera ett datetime-värde, formaterat på ett sätt som vi anger.

Vi kan använda den här funktionen för att returnera dagsnamnet från ett datum (liksom alla andra delar av datetime-värdet).

Heldagsnamn

När det gäller att returnera dagsnamnet från ett datum, har vi möjlighet att få hela dagsnamnet eller dess förkortade version.

För att få hela dagens namn, DAY formatelementet gör susen:

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

Resultat:

SATURDAY

Short Day Name

För att få det förkortade dagsnamnet, använd DY :

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

Resultat:

SAT

Kapitalisering

Vi kan använda versaler om vi vill. Detta bestämmer versaler för utdata:

SELECT 
    TO_CHAR(DATE '2037-10-03', 'Day') AS "Day",
    TO_CHAR(DATE '2037-10-03', 'day') AS "day",
    TO_CHAR(DATE '2037-10-03', 'Dy') AS "Dy",
    TO_CHAR(DATE '2037-10-03', 'dy') AS "dy"
FROM DUAL;

Resultat:

         Day          day     Dy     dy 
____________ ____________ ______ ______ 
Saturday     saturday     Sat    sat    

Språk

Språket för dagens namn bestäms antingen explicit med NLS_DATE_LANGUAGE initialiseringsparameter eller implicit med NLS_LANGUAGE initialiseringsparameter.

Vi kan uttryckligen ställa in värdet för NLS_LANGUAGE parametern med ALTER SESSION påstående. När vi gör detta ställer det också implicit in värdet för NLS_DATE_LANGUAGE parameter.

Ställ dock in NLS_DATE_LANGUAGE parametern ändrar inte värdet på NLS_LANGUAGE parameter. Detta gör det möjligt för oss att ange ett annat språk för formatelement som returnerar stavade värden, om det behövs.

Här är ett exempel på hur du ställer in NLS_DATE_LANGUAGE parameter till ett annat språk:

ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';

Resultat:

Session altered.

Nu, när vi returnerar dagsnamnet från ett datum, returneras det på det språk vi precis angav:

SELECT 
    TO_CHAR(DATE '2037-10-03', 'DAY') AS "Full Day Name",
    TO_CHAR(DATE '2037-10-03', 'DY') AS "Short Day Name"
FROM DUAL;

Resultat:

   Full Day Name    Short Day Name 
________________ _________________ 
SAMSTAG          SA               

Standardspråket kan åsidosättas på funktionsnivå med en tredje parameter som anger språket:

ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';
SELECT 
    TO_CHAR(
        DATE '2037-10-03', 
        'Day', 
        'NLS_DATE_LANGUAGE = Spanish' 
    )
FROM DUAL;

Resultat:

Sábado

Det finns många fler formatelement tillgängliga för att formatera datetime-värden i Oracle. Se Lista över Datetime Format Elements i Oracle för en fullständig lista.


  1. SQL:Välj Top 3 Records + Sum of Quantity

  2. Kolv efter exempel – Konfigurera Postgres, SQLAlchemy och Alembic

  3. Hög utrymmesanvändning Från crfclust.bdb

  4. Hur skriver man en skiftlägesokänslig fråga för både MySQL och Postgres?