雪花中两个日期之间的年龄

AGE between 2 dates in snowflake

雪花中 2 个日期之间的年龄

在 Netezza 中,我们有称为 AGE 的函数,但我找不到类似的雪花

Netezza:select年龄('2019-12-01','2018-12-12')- o/p:11 个月 20 天

snowflake有类似的功能吗?

鉴于 Netezza 基于 PostgreSQL,因此它是 AGE function, is equivalent to Snowflake's DATEDIFF,但与 PostgreSQL 间隔一样,它默认以 Years/Months/Days 的简化术语表示。 Snowflake 不提供执行此操作的功能。参数的顺序也被交换了。

因此您的 AGE('2019-12-01', '2018-12-12') 将是 DATEDIFF('days', '2018-12-12', '2019-12-01')

我打算建议您可以执行以下操作来构建零件,但我很确定这是 snowflake 中的一个错误:

select '2018-12-12'::date AS st
,'2019-12-01'::date AS et
--,DATEDIFF('month', st,et) AS t_m
--,DATEDIFF('days', st,et) AS t_d
,DATEDIFF('year', st,et) AS y
,DATEADD('year', y, st) AS yst
,DATEDIFF('month', yst,et) AS m 
,DATEADD('month', m, yst) AS mst
,DATEDIFF('day', mst,et) AS d 
;

因为 y 是 1 而 t_m 是 12 我不认为他们应该是因为它只有 354 天..

我将打开错误报告。但是 if/when 这是固定的,然后你可以将 y、m 和 d 一起比较,如果你需要的话,可以得到字符串。否则我会自己坚持几天。