雪花中两个日期之间的年龄
在 Netezza 我们有称为 AGE 的函数,但雪花我找不到类似的东西
Netezza:选择 AGE('2019-12-01', '2018-12-12') - o/p: 11 mons 20 days
雪花中是否有类似的功能?
雪花中两个日期之间的年龄
在 Netezza 我们有称为 AGE 的函数,但雪花我找不到类似的东西
Netezza:选择 AGE('2019-12-01', '2018-12-12') - o/p: 11 mons 20 days
雪花中是否有类似的功能?
因此,鉴于 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
;
正如y1
和 t_m 一样12
,我认为它们不应该是这样,因为它只有 354 天。
我将打开一个错误报告。但是如果/当它被修复时,如果你需要的话,你可以比较 y、m 和 d 来取回字符串。否则我自己会坚持几天。