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

2024-02-16

对于我的项目,我需要在一周中的天数和 1...7 值之间建立绝对的数字对应关系。

您可能知道,日期和数字之间的关联可能会根据区域设置而有所不同,例如在德国,星期一是 1,星期日是 7,而在美国,星期一是 2,星期日是 1。

因此,在寻找解决方案时,我发现以下代码似乎可以工作,无论区域设置如何,分配 Monday=1...Sunday=7:

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

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

TRUNC (date, 'IW')

确实如此。


TRUNC(DATE,'IW')返回一周的第一天。为我TRUNC(SYSDATE,'IW)周一返回。今天是 2 月 21 日星期二。从中减去TRUNC(SYSDATE,'IW')这将是 20 号星期一,你会得到1(因为21-20=1). Add 1就像你在方程开头所做的那样,你得到2,我们将其与星期二联系起来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

trunc(date, 'IW') 到底做什么? 的相关文章

随机推荐