截断到底是什么(日期,'IW')?

Pha*_*ate 10 sql oracle oracle11g date-formatting

对于我的项目,我需要在星期几和1 ... 7值之间建立绝对的数字对应关系.

您可能知道天数和数字之间的关联可能因地区而异,例如德国周一是1,周日是7,而美国周一是2,周日是1.

因此,在搜索解决方案时,我发现以下代码看起来无论区域设置如何都有效,分配星期一= 1 ...星期日= 7:

1 + TRUNC (date) - TRUNC (date, 'IW')
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下它是如何工作的吗?特别是我无法理解这条指令是什么:

TRUNC (date, 'IW')
Run Code Online (Sandbox Code Playgroud)

确切地说.

小智 9

TRUNC(DATE,'IW')返回一周的第一天.我TRUNC(SYSDATE,'IW)周一回来.今天是2月21日星期二.减去TRUNC(SYSDATE,'IW')20日星期一的那个,你会得到1(因为21-20=1).添加1到,当你在你的方程式的开始做,你会得到2,这是我们与联想周二.