QKDB的周数

问题描述 投票:1回答:1

我想把一个日期周映射到一年的周数上。

我想过减去一年的开始,然后除以7--但是这可能不正确。

e.g.
2020.01.02 -> Week 1
2020.01.06 -> Week 2
kdb
1个回答
2
投票

我建议使用以下函数。

weekOfYear: {1+floor (x-`week$"d"$12 xbar"m"$x)%7}

这个函数

  1. 在1月1日前或1月1日的第一个星期一进行查找,如 {(`week$"d"$12 xbar"m"$x)}2020.01.01 返回 2019.12.30
  2. 然后找出两者之间的天数差异 x 和第一个星期一
  3. 将差值除以7再加1,得到你想要的结果。

比如说

weekOfYear 2019.12.31 2020.01.01 2020.01.02 2020.01.05 2020.01.06 2020.01.07

返回

53 1 1 1 2 2

2
投票

在Antons伟大的答案的基础上,你还可以使用 div 函数,而不是将其置于地板上,这样看起来就像

{1 + (x - `week $ `date $ 12 xbar `month $ x) div 7}
© www.soinside.com 2019 - 2024. All rights reserved.