在Oracle中 IW 和 WW 有什么區(qū)別?計(jì)算它們的算法是什么?
IW:ISO標(biāo)準(zhǔn)周
WW:oracle標(biāo)準(zhǔn)周
舉例:
SELECT to_char(to_date('20051203','yyyymmdd'),'WW') "WW03",
to_char(to_date('20051203','yyyymmdd'),'IW') "IW03",
to_char(to_date('20051204','yyyymmdd'),'WW') "WW04",
to_char(to_date('20051204','yyyymmdd'),'IW') "WW04",
to_char(to_date('20051205','yyyymmdd'),'WW') "WW05",
to_char(to_date('20051205','yyyymmdd'),'IW') "WW05"
FROM dual;
Oracle中發(fā)現(xiàn)的WW和IW的規(guī)律
WW:
每年的1月1日作為當(dāng)年的第一周的第一天(不管當(dāng)年的1月1日是星期幾);
比如:2004/01/01 是周四, 在Oracle中被定義為2004年WW的第一周的第一天;
SELECT TO_CHAR(TO_DATE('20040101','YYYYMMDD'),'YY:WW'),TO_CHAR(TO_DATE('20040107','YYYYMMDD'),'YY:WW'),TO_CHAR(TO_DATE('20040108','YYYYMMDD'),'YY:WW') FROM DUAL;
IW :
以周別為“主線(xiàn)” ,每年最多可以有53個(gè)周B別,但是每年至少要包含52個(gè)周別;
如果一年當(dāng)中第52周別之后至當(dāng)年的12月31日之間,還有大于或等于4天的話(huà),則定為當(dāng)年的第53周,否則剩余這些天數(shù)被歸為下一年的第1周;如果在不足52周別的話(huà),則以下一年的時(shí)間來(lái)補(bǔ);每周固定的從周一開(kāi)始作為本周的第1天,到周日作為本周的第7天;比如:在Oracle中 2006/01/01 依然屬于IW周別 05年的第52周的第7天
SELECT TO_CHAR(TO_DATE('20051226','YYYYMMDD'),'IY:IW'),TO_CHAR(TO_DATE('20060101','YYYYMMDD'),'IY:IW') FROM DUAL;
聯(lián)系客服