sql >> Database teknologi >  >> RDS >> Oracle

Sådan får du dagsnavnet fra en dato i Oracle

Med Oracle Database kan vi bruge TO_CHAR(datetime) funktion til at returnere en datetime-værdi, formateret på en måde, som vi angiver.

Vi kan bruge denne funktion til at returnere dagsnavnet fra en dato (såvel som andre dele af datetime-værdien).

Fulddagsnavn

Når det kommer til at returnere dagsnavnet fra en dato, har vi mulighed for at få hele dagsnavnet eller dets forkortede version.

For at få hele dagens navn, DAY formatelementet gør tricket:

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

Resultat:

SATURDAY

Navn på kort dag

Brug DY for at få det forkortede dagnavn :

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

Resultat:

SAT

Kapitalisering

Vi kan bruge store bogstaver, hvis vi ønsker det. Dette bestemmer kapitaliseringen af ​​output:

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    

Sprog

Sproget for dagsnavnet bestemmes enten eksplicit med NLS_DATE_LANGUAGE initialiseringsparameter eller implicit med NLS_LANGUAGE initialiseringsparameter.

Vi kan udtrykkeligt indstille værdien af ​​NLS_LANGUAGE parameter med ALTER SESSION udmelding. Når vi gør dette, sætter det også implicit værdien af ​​NLS_DATE_LANGUAGE parameter.

Indstilling af NLS_DATE_LANGUAGE parameter ændrer ikke værdien af ​​NLS_LANGUAGE parameter. Dette gør det muligt for os at angive et andet sprog for formatelementer, der returnerer stavede værdier, hvis det kræves.

Her er et eksempel på indstilling af NLS_DATE_LANGUAGE parameter til et andet sprog:

ALTER SESSION SET NLS_DATE_LANGUAGE = 'GERMAN';

Resultat:

Session altered.

Når vi nu returnerer dagsnavnet fra en dato, returneres det på det sprog, vi lige har angivet:

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               

Standardsproget kan tilsidesættes på funktionsniveau med en tredje parameter, der specificerer sproget:

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

Resultat:

Sábado

Der er mange flere formatelementer tilgængelige til formatering af datetime-værdier i Oracle. Se Liste over DateTime Format Elements i Oracle for en komplet liste.


  1. Endnu et argument for lagrede procedurer

  2. Bucketizing data og klokkeslæt

  3. Hvordan man designer en rejsewebstedsdatabase

  4. Brug af pivot på flere kolonner i en Oracle-række