2014-01-08 58 views
3

爲什麼12/16/2013和12/17/2013在不同的一週?甲骨文每週的這一週

alter session set NLS_TERRITORY=AMERICA; 
select to_char(to_date('12-16-2013', 'mm-dd-yyyy'),'ww'),to_char(to_date('12-17-2013', 'mm-dd-yyyy'),'ww') from dual 

回答

3

如果你看一下格式化模型documentation,它指出:

  • WW - 年的周(1-53)第1點開始對的 年的第一天和一直持續到今年的第七天。
  • W - 一個月中的第一週(1-5)其中第一週從第一天開始,第一天爲 ,第七天結束。

01/01/2013在去年的週二開始,而不是一週的第一天。所以在你的測試用例中,2013年12月17日也是在星期二,並且一個新的「星期」作爲oracle計算它。當然,不明顯。

+0

好解釋 – xyray

+1

@ user3061754有第三種選擇:'IW' - 「ISO周」,它根據ISO標準計算週數。 –

+0

WOW。這就是我想要的。謝謝a_horse_with_no_name – xyray