Snowflake:计算日期和该日期开始之间的秒差

Snowflake: calculate seconds difference between date and start of that date

假设我有一个 table,其中有一列作为时间戳 ntz。我想执行一个 select 来计算 table 中的那一刻与该日期的开始之间的秒数差异。对于纯时间戳类型,我可以只使用 timediff 函数:

select timediff(second, ‘2022-01-01 00:00:05’::timestamp_ntz, ‘2022-01-01 00:00:00’::timestamp_ntz)

其中 returns 5.

如何使用 table 中的值来实现,例如:

select timediff(second, my_date, my_date_startofdate)

其中 my_date_startofdate 将转换为那一天,但时间为 00:00:00。

抱歉没有使用代码换行,因为我在 iPhone 上找不到它。感谢任何可以帮助我编辑它的人。

使用date_trunc。此函数采用时间戳或日期并将其截断为您想要的任何元素。因此,如果您获取时间戳列并截断它的一天,它会删除时间元素并为您提供一天的开始。

select timediff(second, date_trunc('day',my_date), my_date)

https://docs.snowflake.com/en/sql-reference/functions/date_trunc.html