Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie gibt man mit Oracle SQL die Wochentage und den Wochentag aus?

Florins Antwort ist, wie ich es machen würde, aber Sie müssen bei den NLS-Einstellungen ein wenig vorsichtig sein. Der Wochentag wird durch das NLS-Territorium beeinflusst. Wenn ich dies also so ausführe, als wäre ich in den USA, funktioniert es:

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

Aber die gleiche Abfrage, die in Großbritannien ausgeführt wird, ist ein freier Tag:

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

... und ich muss die Berechnung anpassen, um das zu korrigieren:

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

Wenn Sie möchten, können Sie die Sprache für die Tagesnamen auch separat angeben:

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 für to_char() mit nls_date_language und Wochentag und mehr im Leitfaden zur Globalisierungsunterstützung.