1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| SELECT greatest(trunc(to_date(y||'-01-01','RRRR-MM-DD'),'IW')+
( Case When trim(to_char(to_date(y||'-01-01','RRRR-MM-DD'),'Day','nls_date_language=french')) NOT IN ('Samedi', 'Dimanche') Then w Else w +1 End -1)*7,trunc(to_date(y||'-01-01','RRRR-MM-DD'),'IW')) AS "Lundi" ,
trunc(to_date(y||'-01-01','RRRR-MM-DD'),'IW')+6+( Case When trim(to_char(to_date(y||'-01-01','RRRR-MM-DD'),'Day','nls_date_language=french')) NOT IN ('Samedi', 'Dimanche') Then w Else w +1 End -1)*7 AS "Dimanche"
FROM (SELECT &year y, &week w FROM dual);
Enter value for year: 2008
Enter value for week: 05
old 4: FROM (SELECT &year y, &week w FROM dual)
new 4: FROM (SELECT 2008 y, 05 w FROM dual)
Lundi Dimanche
--------- ---------
28-JAN-08 03-FEB-08
1 row selected.
/***** NOUVEAU TEST *****/
Enter value for year: 2008
Enter value for week: 01
old 4: FROM (SELECT &year y, &week w FROM dual)
new 4: FROM (SELECT 2008 y, 01 w FROM dual)
Lundi Dimanche
--------- ---------
31-DEC-07 06-JAN-08
1 row selected. |
Partager