![](/img/trans.png)
[英]create week function, but instead of Sunday start day of the week, Monday
[英]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日。
而順便說一句,你應該列的數據類型更改forecastDate
到DATE
或TIMESTAMP
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.