对于我的项目,我需要在星期几和1 ... 7值之间建立绝对的数字对应关系。
您可能知道天数和数字之间的关联可能因地区而异,例如在德国,周一是1,周日是7,而在美国,周一是2,周日是1。
因此,在搜索解决方案时,我发现以下代码无论语言环境如何都可以正常工作,分配星期一= 1 ...星期日= 7:
1 + TRUNC (date) - TRUNC (date, 'IW')
有人可以解释一下它是如何运作的吗?特别是我无法理解这条指令是什么:
TRUNC (date, 'IW')
确实如此。
答案 0 :(得分:7)
像往常一样,这是answered in the documentation,具体来说是:
IW日历周(1-52或1-53),由ISO 8601标准定义。日历周从星期一开始
答案 1 :(得分:7)
builder
.RegisterAssemblyTypes(typeof(IRequest<>).Assembly)
.Where(t => t.IsClosedTypeOf(typeof(IRequest<>)))
.AsImplementedInterfaces();
builder
.RegisterAssemblyTypes(typeof(IRequestHandler<,>).Assembly)
.Where(t => t.IsClosedTypeOf(typeof(IRequestHandler<,>)))
.AsImplementedInterfaces();
返回一周的第一天。对我来说TRUNC(DATE,'IW')
星期一回来。今天是2月21日星期二。减去那个星期一20日的TRUNC(SYSDATE,'IW)
,你将获得TRUNC(SYSDATE,'IW')
(因为1
)。像在等式的开头一样,将21-20=1
添加到其中,然后得到1
,我们将其与星期二联系起来。
答案 2 :(得分:3)