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
假设我有一个 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