You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:33:30