Snowflake:如何获取当前的 Unix 纪元时间戳

Mit*_*har 8 snowflake-cloud-data-platform

如何在 Snowflake 中获取当前的Unix 纪元时间戳?我找不到任何有关相同内容的文档

Luk*_*zda 14

使用DATEDIFF

SELECT DATEDIFF(second, '1970-01-01'::DATE, CURRENT_TIMESTAMP());
Run Code Online (Sandbox Code Playgroud)

DATE_PART

SELECT DATE_PART(epoch_second, CURRENT_TIMESTAMP());
Run Code Online (Sandbox Code Playgroud)

支持的日期和时间部分

epoch_second

epoch_毫秒

epoch_微秒

纪元_纳秒

  • Lukasz 使用 DATE_PART 的第二个解决方案就是您所追求的: SELECT DATE_PART(epoch_second, CURRENT_DATE); 它返回纪元时间戳,它没有时区值。它是自 1970 年 1 月 1 日(UTC)以来的秒数。 (2认同)
  • 请参阅 /sf/answers/4900918781/,因为 CURRENT_DATE 将全天返回相同的数字 (2认同)

Fel*_*ffa 6

该解决方案与时区无关,不需要数学:

alter session set timezone = 'US/Eastern';
select date_part(epoch_second, current_timestamp());
-- 1637194610

alter session set timezone = 'America/Los_Angeles';
select date_part(epoch_second, current_timestamp());
-- 1637194621
Run Code Online (Sandbox Code Playgroud)

请注意,current_timestamp()返回您想要的内容,而current_date()仅返回日期(没有时间部分)。