WITH t AS (SELECT TO_DATE ('07-07-2016', 'dd-mm-rrrr') d FROM DUAL)
SELECT TO_CHAR (d, 'w') week,
TO_CHAR (d, 'd') day_no,
TO_CHAR (d, 'Day') Day
FROM t
WEEK DAY_NO DAY
---- ------ ----------
1 5 Donnerstag
1 row selected.
Es ist möglich, es zu machen, wie Sie es wollen, unabhängig von NLS_TERRITORY:
WITH t AS (SELECT TO_DATE ('07-08-2016', 'dd-mm-rrrr') d FROM DUAL)
SELECT trunc(TO_CHAR (d+1, 'j')/7)-trunc(TO_CHAR (trunc(trunc(d,'mm'),'IW')+1, 'j')/7)+1 week,
TO_CHAR (d, 'd') day_no,
TO_CHAR (d, 'Day') Day
FROM t
WEEK DAY_NO DAY
---------- ------ ----------
2 1 Sonntag
1 row selected.
aber es wird lustig sein, wenn der erste Tag des Monats ist Samstag. Sie werden die 6. Woche im Monat haben.
WITH t AS (SELECT TO_DATE ('30-11-2014', 'dd-mm-rrrr') d FROM DUAL)
SELECT trunc(TO_CHAR (d+1, 'j')/7)-trunc(TO_CHAR (trunc(trunc(d,'mm'),'IW')+1, 'j')/7)+1 week,
TO_CHAR (d, 'd') day_no,
TO_CHAR (d, 'Day') Day
FROM t
WEEK DAY_NO DAY
---------- ------ ----------
6 1 Sonntag
1 row selected.
: 8 datum in der zweiten woche nicht 7 –
Was denkst du als erster tag der woche? Überprüfen Sie Ihre NLS_TERRITORY Einstellungen. –
Mögliches Duplikat von [So extrahieren Sie die Wochennummer in sql] (http://stackoverflow.com/questions/16530044/how-to-extract-week-number-in-sql) – Rene