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);
我是 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);