Ant*_*yDa 0 sql oracle week-number
我有以下查询:
SELECT forecastDate, to_char(to_date(forecastDate),'WW') AS WEEK_NUMBER
FROM ACT_FORECAST
Run Code Online (Sandbox Code Playgroud)
这给了我这个结果:
forecastDate | WEEK_NUMBER
14/07/2017 28
15/07/2017 28
16/07/2017 29
Run Code Online (Sandbox Code Playgroud)
但在我所在的地区,周一开始的一周,我应该有 28 个 2017 年 7 月 16 日。
我的数据库的 NLS_TERRITORY 值是“法国”。
我尝试了多种方法,但没有任何效果。
有任何想法吗?
谢谢
原因是格式WW,其中文件说:
WW
一年中的第 1 周 (1-53),其中第 1 周从一年的第一天开始并持续到一年的第七天。
幸运的是,在 ISO-8601 上,一周的第一天也是星期一,因此您可以使用
SELECT forecastDate, to_char(to_date(forecastDate),'IW') AS WEEK_NUMBER
FROM ACT_FORECAST
Run Code Online (Sandbox Code Playgroud)
信息战
一年中的日历周(1-52 或 1-53),由 ISO 8601 标准定义。
日历周从星期一开始。
一年中的第一个日历周包括 1 月 4 日。
一年中的第一个日历周可能包括 12 月 29 日、30 日和 31 日。
一年中的最后一个日历周可能包括 1 月 1 日、2 日和 3 日。
顺便说一句,您应该将列的数据类型更改forecastDate为DATEor TIMESTAMP。
| 归档时间: |
|
| 查看次数: |
2744 次 |
| 最近记录: |