簡體   English   中英

在Oracle中,“每周的第一天”設置為星期日,而不是星期一

[英]First Day of Week is set to Sunday instead of Monday in Oracle

我有以下查詢:

SELECT forecastDate, to_char(to_date(forecastDate),'WW') AS WEEK_NUMBER
FROM ACT_FORECAST

這給我這個結果:

forecastDate | WEEK_NUMBER
14/07/2017     28
15/07/2017     28
16/07/2017     29

但是在我所在的區域,從星期一開始的那一周,我應該在2017年7月16日有28歲。

我的數據庫的NLS_TERRITORY值為“法國”。

我嘗試了多種方法,但沒有任何效果。

有任何想法嗎?

謝謝

原因是WW格式,其中文檔說:

WW

一年中的第幾周(1-53),第1周從一年的第一天開始,一直到該年的第七天。

幸運的是,根據ISO-8601,每周的第一天也是星期一,因此您可以使用

SELECT forecastDate, to_char(to_date(forecastDate),'IW') AS WEEK_NUMBER
FROM ACT_FORECAST

IW

根據ISO 8601標准定義的一年中的日歷周(1-52或1-53)。

  • 日歷周從星期一開始。

  • 一年中的第一個日歷周包括1月4日。

  • 一年中的第一個日歷周可能包括12月29日,30日和31日。

  • 一年中的最后一個日歷周可能包括1月1日,2日和3日。

而順便說一句,你應該列的數據類型更改forecastDateDATETIMESTAMP

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM