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週間とする.そして毎年の最初の日曜日を第一週にすることで、去年の最後の数日を今年の最初の週の日付にすることができます!!!
推奨
例えば、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')
, ,