一尘不染

trunc(date,'IW')到底是什么?

sql

对于我的项目,我需要在星期几和1 … 7值之间具有绝对的数值对应关系。

您可能已经知道,天数与数字之间的关联会因地区而异,例如在德国,星期一是1,星期日是7,而在美国,星期一是2,而星期日是1。

因此,在寻找解决方案时,我发现以下代码似乎不管区域设置如何都有效,将Monday = 1 … Sunday = 7分配为:

1 + TRUNC (date) - TRUNC (date, 'IW')

有人可以向我解释一下它是如何工作的吗?特别是我只是不明白这条指令是什么:

TRUNC (date, 'IW')

确实如此。


阅读 212

收藏
2021-05-16

共1个答案

一尘不染

TRUNC(DATE,'IW')返回一周的第一天。对我来说,TRUNC(SYSDATE,'IW)星期一回来。今天是2月21日,星期二。减去TRUNC(SYSDATE,'IW')20日1(星期一),您会得到(因为21-20=1)。1像在方程式的开始那样进行添加,您将获得2,我们将其与星期二关联。

2021-05-16