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

Hvordan udlæser man dagnummer uge og ugedag ved brug af Oracle SQL?

Florins svar er, hvordan jeg ville gøre det, men du skal være lidt forsigtig med NLS-indstillinger. Ugedagen er påvirket af NLS-området, så hvis jeg kører dette, som om jeg er i USA, virker det:

alter session set nls_territory = 'AMERICA';

select to_char(sysdate, 'D') as d, to_char(sysdate, 'Day') as day from dual;

D DAY
- ------------------------------------
6 Friday

select level as dow,
    to_char(trunc(sysdate ,'D') + level, 'Day') as day
from dual
connect by level <= 7;

DOW DAY
--- ------------------------------------
  1 Monday
  2 Tuesday
  3 Wednesday
  4 Thursday
  5 Friday
  6 Saturday
  7 Sunday

Men den samme forespørgsel i Storbritannien er en fridag:

alter session set nls_territory = 'UNITED KINGDOM';

select to_char(sysdate, 'D') as d, to_char(sysdate, 'Day') as day from dual;

D DAY
- ------------------------------------
5 Friday

select level as dow,
    to_char(trunc(sysdate ,'D') + level, 'Day') as day
from dual
connect by level <= 7;

DOW DAY
--- ------------------------------------
  1 Tuesday
  2 Wednesday
  3 Thursday
  4 Friday
  5 Saturday
  6 Sunday
  7 Monday

... og jeg skal justere beregningen for at korrigere for det:

select level as dow,
    to_char(trunc(sysdate ,'D') + level - 1, 'Day') as day
from dual
connect by level <= 7;

DOW DAY
--- ------------------------------------
  1 Monday
  2 Tuesday
  3 Wednesday
  4 Thursday
  5 Friday
  6 Saturday
  7 Sunday

Du kan også specificere det sprog, der bruges til dagnavnene separat, hvis du ønsker:

select level as dow,
    to_char(trunc(sysdate ,'day') + level - 1, 'Day',
        'NLS_DATE_LANGUAGE=FRENCH') as day
from dual
connect by level <= 7;

DOW DAY
--- --------------------------------
  1 Lundi
  2 Mardi
  3 Mercredi
  4 Jeudi
  5 Vendredi
  6 Samedi
  7 Dimanche

Dokumentation for to_char() med nls_date_language og ugedag og mere i globaliseringssupportguiden.



  1. Hvordan opretter man mappe i Oracle?

  2. Oracle Joins - Sammenligning mellem konventionel syntaks VS ANSI-syntaks

  3. Tilslutning til MySQL ved hjælp af Python

  4. Minimal logning med INSERT...SELECT og hurtig indlæsningskontekst