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

Jey*_*vel 2 snowflake-cloud-data-platform snowflake-task

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

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

Netezza:选择 AGE('2019-12-01','2018-12-12') - 日期:11 个月 20 天

雪花有类似的功能吗?

Sim*_*rim 5

因此,鉴于 Netezza 是基于 PostgreSQL 的,因此它的AGE功能相当于 Snowflake 的DATEDIFF,但与 PostgreSQL 间隔一样,它默认以年/月/日的简化形式表示。Snowflake 不提供执行此操作的功能。参数的顺序也被交换。

因此你AGE('2019-12-01', '2018-12-12')会是DATEDIFF('days', '2018-12-12', '2019-12-01')

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

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 
;
Run Code Online (Sandbox Code Playgroud)

AS y1和 t_m 是12,我不认为它们应该是这样,因为只有 354 天。

我将打开一个错误报告。但是如果/当它被修复时,那么你可以将 y、m 和 d 一起比较,以获取字符串(如果你需要)。否则我自己会坚持几天。