Florins Antwort ist, wie ich es tun würde, aber Sie müssen ein wenig vorsichtig mit NLS-Einstellungen sein. Der Tag der Woche wird durch die NLS Gebiet betroffen, also wenn ich diese laufen, als ob ich in den USA bin es funktioniert:
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 im Vereinigten Königreich 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 brauche die Berechnung einzustellen, 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
Sie können auch die Sprache für die Tagesnamen separat verwendet angeben, wenn Sie wollen:
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()
with nls_date_language
und day of the week und mehr in der globalisation support guide.
Dies war ursprünglich eine sehr schlecht formulierte Frage. Es wurde jedoch überarbeitet und geklärt und ist nun eine sehr nützliche Frage. Die Antworten auf dieser Seite waren mir eine große Hilfe bei der Vereinfachung eines (ursprünglich) schwierigen Oracle-Problems. Diese Antworten sind an anderer Stelle nicht verfügbar. Diese Frage verdient es, neu bewertet und möglicherweise wieder geöffnet zu werden. –
Es ist jetzt eine echte Frage. –