Oracle to_についてchar()関数におけるIW,WWの周別表示

4905 ワード

1)wwのアルゴリズムは毎年1月1日が第1週開始,date+6が毎週終了
例えば、20050101は第1週の初日であり、第1週の最終日は20050101+6=20050107である
式週1日目:date+週*7-7
毎週最終日:date+週*7-1
2)iwアルゴリズムは自然週,すなわち月曜日から日曜日までを1週間とする.そして毎年の最初の日曜日を第一週にすることで、去年の最後の数日を今年の最初の週の日付にすることができます!!!
 
 1 select to_char(date'2015-1-1', 'yyyyww')  from dual;
 2 -- 201501
 3 select to_char(date'2015-1-1', 'yyyyiw')  from dual;
 4 -- 201501
 5 select to_char(date'2015-1-5', 'yyyyww')  from dual;
 6 201501
 7 select to_char(date'2015-1-5', 'yyyyiw')  from dual;
 8 201502
 9 select to_char(date'2014-12-31', 'yyyyww')  from dual;
10 201453
11 select to_char(date'2014-12-31', 'yyyyiw')  from dual;
12 201401       ,     ,       201401      ,     201501 
13 select to_char(date'2014-12-28', 'yyyyww')  from dual;
14 201452
15 select to_char(date'2014-12-28', 'yyyyiw')  from dual;
16 201452

推奨
trunc(date'','iw')
         ,           ,