【发布时间】:2022-10-13 11:36:14
【问题描述】:
我需要将日期四舍五入到最近的月份开始。例如,我希望 2022-08-30 和 2022-09-03 都评估为 2022-09-01。
如何使用 Snowflake SQL 做到这一点?
【问题讨论】:
标签: sql date snowflake-cloud-data-platform
我需要将日期四舍五入到最近的月份开始。例如,我希望 2022-08-30 和 2022-09-03 都评估为 2022-09-01。
如何使用 Snowflake SQL 做到这一点?
【问题讨论】:
标签: sql date snowflake-cloud-data-platform
我们可以将此逻辑封装到 SQL UDF 中:
create or replace function round_to_month(d date)
returns date
as $$
select x
from (
select date_trunc(month, d) before
, dateadd(month, 1, before) after
, iff(d-before < after-d, before, after) x
)
$$
样本:
with data(d) as (
select $1::date
from values('2020-01-10'), ('2020-01-20'), ('2020-01-16'), ('2020-01-17')
)
select *, round_to_month(d)
from data
【讨论】: