如何使用一周的非标准第一天在 Oracle 中计算一年中的一周?

dka*_*man 4 oracle datetime

我有一个查询,需要返回日期字段的“年度周刊”,但查询的客户使用一周的非标准第一天,所以TO_CHAR'IW'没有返回预期的结果。在这种情况下,一周的第一天是周六,周五是一周的第七天。

使用 T-SQL 我会使用DATEPARTSET DATEFIRST

什么是 Oracle 等价物?我在谷歌中找到的 Oracle 答案都在谈论设置NLS_TERRITORY类似的内容,ALTER SESSION SET NLS_TERRITORY = 'UNITED KINGDOM';但我没有看到我可以选择任意一天的位置(除了可能找到使用星期六的区域)。

Cra*_*aig 6

IW 在周一至周日工作,所以这应该可以满足您的需求。基本上,根据从现在起 2 天后的第 2 天获取一周:

to_char(your_date + 2, 'IW')
Run Code Online (Sandbox Code Playgroud)