我正在尝试编写一个雪花查询,该查询具有在(current_month + 6 个月)和(current_month + 12 个月)之间的 where 条件。
当前数据格式为YYYYMM格式
For example: 202307, 202308,202309
我的查询看起来像这样:
select business_month from table1 where business_month between '202308' and '202406'
这里是我使用的sql:
从表 1 中选择 business_month,其中 business_month 在 ADD_MONTHS(current_date,6) 和 ADD_MONTHS(current_date,12) 之间
这个问题是它是按 YYYY-MM-DD 过滤的。
有没有办法将上面查询的日期格式更改为 YYYYMM?
使用
TO_DATE
-> ADD_MONTHS
-> TO_VARCHAR
:
select business_month
from table1
where business_month between TO_VARCHAR(ADD_MONTHS(TO_DATE('202308', 'YYYYMM'),6), 'YYYYMM')
and TO_VARCHAR(ADD_MONTHS(TO_DATE('202406', 'YYYYMM'),12), 'YYYYMM');
SELECT TO_VARCHAR(ADD_MONTHS(TO_DATE('202308', 'YYYYMM'),6), 'YYYYMM'),
TO_VARCHAR(ADD_MONTHS(TO_DATE('202308', 'YYYYMM'),12), 'YYYYMM');
-- 202402 202408
或当前日期:
SELECT TO_VARCHAR(ADD_MONTHS(TRUNC(CURRENT_DATE(),'MONTH'),6), 'YYYYMM'),
TO_VARCHAR(ADD_MONTHS(TRUNC(CURRENT_DATE(),'MONTH'),12), 'YYYYMM');
-- 202308 202402