繁体   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