我有以下查询:
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
但在我所在的地区,周一开始的一周,我应该有 28 个 16/07/2017。
我的数据库的 NLS_TERRITORY 值是“法国”。
我尝试了多种方法,但没有任何效果。
有任何想法吗?
谢谢
原因是格式WW
,其中文件说:
WW
一年中的第 (1-53) 周,其中第 1 周从一年的第一天开始并持续到一年的第七天。
幸运的是,在 ISO-8601 上,一周的第一天也是星期一,因此您可以使用
SELECT forecastDate, to_char(to_date(forecastDate),'IW') AS WEEK_NUMBER
FROM ACT_FORECAST
信息战
一年中的日历周(1-52 或 1-53),由 ISO 8601 标准定义。
日历周从星期一开始。
一年中的第一个日历周包括 1 月 4 日。
一年中的第一个日历周可能包括 12 月 29 日、30 日和 31 日。
一年中的最后一个日历周可能包括 1 月 1 日、2 日和 3 日。
顺便说一句,您应该将列的数据类型更改forecastDate
为DATE
or TIMESTAMP
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句