Snowflake计算timestamp_ntz值与当日起始时间的秒数差
实现方法
直接用date_trunc函数将timestamp_ntz字段截断到日粒度,就能得到对应日期的00:00:00起始时刻,代入timediff即可完成计算。
查询语句写法:
select timediff(second, date_trunc('day', my_date), my_date) as seconds_from_day_start from your_table;
逻辑说明
date_trunc('day', my_date)返回值和入参类型一致,为timestamp_ntz,取值就是my_date对应日期的00:00:00,完全匹配你需要的my_date_startofdate值。- 该逻辑和你之前的常量测试完全等价:当
my_date为'2022-01-01 00:00:05'::timestamp_ntz时,截断后得到'2022-01-01 00:00:00'::timestamp_ntz,最终返回差值为5,符合预期。
替代写法
也可以通过类型转换实现相同效果,先转date类型丢弃时分秒,再转回timestamp_ntz时会自动填充00:00:00:
select timediff(second, my_date::date::timestamp_ntz, my_date) from your_table;
内容的提问来源于stack exchange,提问作者Long Luu
相关产品推荐
相关产品推荐

