Snowflake 时间旅行功能中的时间戳问题

Timestamp issue in Time Travel feature in Snowflake

我是 SnowFlake 的新手。我在 Snowflake 中创建了一个 table。以下是详情。

# Created @ 2020-01-07 21:11:20.810 -0800
CREATE TABLE employee2(
emp_id INT,
f_name STRING,
l_name STRING,
dept STRING);

当我尝试使用以下命令获取时间旅行数据时,出现错误。

查询:

select * from employee2 at(timestamp => '2020-01-07 21:12:20.810 -0800'::timestamp);

错误: table EMPLOYEE2 的时间旅行数据不可用。请求的时间要么超出允许的时间旅行周期,要么早于对象创建时间。

尽管下面的命令运行良好。

SELECT * FROM employee2 at(offset => -60 * 2);

任何对此的帮助将不胜感激。

此致, 内拉吉

时间旅行功能的持续时间因帐户而异。您需要检查您创建的帐户类型(Standard/Enterprise 等)。保留政策为标准版1天,企业版90天。

我还建议您在使用此功能之前设置时区以获得更高的准确性

ALTER SESSION  SET TIMEZONE = 'UTC' 

然后尝试 运行 这个查询。在您的毫秒部分进行细微改动。

select * from employee2 before(timestamp => '2020-01-07 21:12:20.810'::timestamp);

AT 子句用于偏移量,因此当您使用时间戳或任何字段时,请使用 BEFORE 关键字。

--time travel 2 min ago
SELECT * FROM employee2 at(offset => -60 * 2);

希望这对您有所帮助,如果没有帮助,请通过屏幕截图分享您的评论和错误。

如果时间戳在当地时区,尝试转换为 TIMESTAMP_LTZ 数据类型:

select * from employee2 at(timestamp => '2020-01-07 21:12:20.810 -0800'::timestamp_ltz);