Snowflake 最近一个财政季度的最后一天
Last day of most recent financial quarter in Snowflake
有没有一种简单的方法可以return Snowflake 中最近一个季度的最后一天?
我们使用最后几天的财务季度:1 月 31 日、4 月 30 日、7 月 31 日、10 月 31 日
谢谢!
不确定您是想要当前季度的最后一天还是上一季度的最后一天,但这应该足以让您到达想去的地方:
SELECT current_date today,
date_trunc('quarter', today) as cur_qrt,
dateadd('day', -1, cur_qrt) as last_day_of_prior_qrt,
dateadd('day', -1, dateadd('quarter', 1, cur_qrt)) as last_day_of_current_qrt;
TODAY
CUR_QRT
LAST_DAY_OF_PRIOR_QRT
LAST_DAY_OF_CURRENT_QRT
2022-01-19
2022-01-01
2021-12-31
2022-03-31
因此任何 day
的上一季度的最后一天是:
dateadd('day', -1, date_trunc('quarter', DAY)) as last_day_of_prior_qrt,
嗯,你是如何提出问题的,我看不出你的约会对象是你想要的..但如果是这样就好了。
SELECT
to_date(column1) as day,
IFF( extract(month, day) in (1, 4, 7, 10),
add_months(dateadd('day', -1, date_trunc('quarter', day)), -2),
add_months(dateadd('day', -1, date_trunc('quarter', day)), 1)
) as last_day_of_prior_qrt,
date_trunc('quarter', day) as cur_qrt,
dateadd('day', -1, date_trunc('quarter', day)) as sim_sqt
from values
('2021-01-04'),('2021-02-04'),('2021-03-04'),('2021-04-04'),('2021-05-04'),('2021-06-04'),('2021-07-04'),('2021-08-04');
给出:
DAY
LAST_DAY_OF_PRIOR_QRT
CUR_QRT
SIM_SQT
2021-01-04
2020-10-31
2021-01-01
2020-12-31
2021-02-04
2021-01-31
2021-01-01
2020-12-31
2021-03-04
2021-01-31
2021-01-01
2020-12-31
2021-04-04
2021-01-31
2021-04-01
2021-03-31
2021-05-04
2021-04-30
2021-04-01
2021-03-31
2021-06-04
2021-04-30
2021-04-01
2021-03-31
2021-07-04
2021-04-30
2021-07-01
2021-06-30
2021-08-04
2021-07-31
2021-07-01
2021-06-30
并且鉴于 2021 年 1 月 4 日在 2021 年第一季度,我看不到“先前”季度 ID 2020 年第三季度的情况,因此最后一天是 2020-10-31
,但是如果那是结果,你想要..
有没有一种简单的方法可以return Snowflake 中最近一个季度的最后一天?
我们使用最后几天的财务季度:1 月 31 日、4 月 30 日、7 月 31 日、10 月 31 日
谢谢!
不确定您是想要当前季度的最后一天还是上一季度的最后一天,但这应该足以让您到达想去的地方:
SELECT current_date today,
date_trunc('quarter', today) as cur_qrt,
dateadd('day', -1, cur_qrt) as last_day_of_prior_qrt,
dateadd('day', -1, dateadd('quarter', 1, cur_qrt)) as last_day_of_current_qrt;
TODAY | CUR_QRT | LAST_DAY_OF_PRIOR_QRT | LAST_DAY_OF_CURRENT_QRT |
---|---|---|---|
2022-01-19 | 2022-01-01 | 2021-12-31 | 2022-03-31 |
因此任何 day
的上一季度的最后一天是:
dateadd('day', -1, date_trunc('quarter', DAY)) as last_day_of_prior_qrt,
嗯,你是如何提出问题的,我看不出你的约会对象是你想要的..但如果是这样就好了。
SELECT
to_date(column1) as day,
IFF( extract(month, day) in (1, 4, 7, 10),
add_months(dateadd('day', -1, date_trunc('quarter', day)), -2),
add_months(dateadd('day', -1, date_trunc('quarter', day)), 1)
) as last_day_of_prior_qrt,
date_trunc('quarter', day) as cur_qrt,
dateadd('day', -1, date_trunc('quarter', day)) as sim_sqt
from values
('2021-01-04'),('2021-02-04'),('2021-03-04'),('2021-04-04'),('2021-05-04'),('2021-06-04'),('2021-07-04'),('2021-08-04');
给出:
DAY | LAST_DAY_OF_PRIOR_QRT | CUR_QRT | SIM_SQT |
---|---|---|---|
2021-01-04 | 2020-10-31 | 2021-01-01 | 2020-12-31 |
2021-02-04 | 2021-01-31 | 2021-01-01 | 2020-12-31 |
2021-03-04 | 2021-01-31 | 2021-01-01 | 2020-12-31 |
2021-04-04 | 2021-01-31 | 2021-04-01 | 2021-03-31 |
2021-05-04 | 2021-04-30 | 2021-04-01 | 2021-03-31 |
2021-06-04 | 2021-04-30 | 2021-04-01 | 2021-03-31 |
2021-07-04 | 2021-04-30 | 2021-07-01 | 2021-06-30 |
2021-08-04 | 2021-07-31 | 2021-07-01 | 2021-06-30 |
并且鉴于 2021 年 1 月 4 日在 2021 年第一季度,我看不到“先前”季度 ID 2020 年第三季度的情况,因此最后一天是 2020-10-31
,但是如果那是结果,你想要..