![](/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.