1

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

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

Netezza:选择 AGE('2019-12-01', '2018-12-12') - o/p: 11 mons 20 days

雪花中是否有类似的功能?

4

1 回答 1

3

因此,鉴于 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 来取回字符串。否则我自己会坚持几天。

于 2019-12-24T04:01:47.247 回答