雪花中2个日期之间的年龄
在Netezza中,我们有一个称为AGE的函数,但雪花我找不到类似的东西
Netezza:选择AGE('2019-12-01','2018-12-12')-o / p:11个月20天
雪花中是否有类似的功能?
答案 0 :(得分:0)
因此,鉴于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
;
由于y是1
,t_m是12
,我不认为它们应该是354天。
我将打开一个错误报告。但是,如果/如果固定了该时间,则可以将y,m和d进行比较,以便在需要时返回该字符串。否则,我会坚持几天。