获取q kdb中上一季度的开始和结束日期

时间:2019-05-24 12:49:16

标签: kdb

我们有一个要求,我们需要上个季度的开始和结束日期。
要获取startData(sd)和endDate(ed),我们可以通过以下代码来实现,但是有什么更好/更干净/更有效的方法来实现这一点。

sd:"d"$("m"$3 xbar "m"$ .z.d)-3;
ed:("d"$3 xbar "m"$ .z.d)-1;

2 个答案:

答案 0 :(得分:2)

您的方法已经非常有效。

q)"d"$("m"$3 xbar "m"$ .z.d)-3
2019.01.01
q)\t:1000000 "d"$("m"$3 xbar "m"$ .z.d)-3
2611

不过,您可以尝试以下方法以使其更加高效和清洁:

q)"d"$-3+3 xbar "m"$.z.d
2019.01.01
q)\t:1000000 "d"$-3+3 xbar "m"$.z.d
2281

答案 1 :(得分:1)

我认为您的解决方案足够好。您可以从开始日期就消除多余的月份转换,并重新排列代码以消除括号。

q) sd:"d"$ -3+3 xbar "m"$ .z.d
q) ed: -1 + "d"$3 xbar "m"$ .z.d

或者您可以同时计算两者:

q) 0 -1 + "d"$-3 0 + 3 xbar "m"$.z.d
q) 2019.01.01 2019.03.31