timezone - 更改雪花中默认时间戳列的时区
问题描述
我在雪花中定义了一个表,如下所示;
CREATE OR REPLACE TABLE DATA_LAKE.CUSTOMER.ACT_PREDICTED_PROBABILITIES(
PREDICTED_PROBABILITY FLOAT,
TIME_PREDICTED TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
正如预期的那样,默认时区是美国/洛杉矶。我正在尝试将其更改为 UTC,但仅适用于本专栏,而不是帐户/会话级别。这是我编写的代码;
ALTER TABLE DATA_LAKE.CUSTOMER.ACT_PREDICTED_PROBABILITIES ALTER TIME_PREDICTED SET timezone= 'UTC';
但它给出了一个错误,
SQL compilation error: syntax error line 1 at position 86 unexpected 'timezone'.
我可以就如何在列级别进行更改获得帮助吗?在此先感谢。
解决方案
我建议查看有关timestamp
数据类型的文档:
https://docs.snowflake.com/en/sql-reference/data-types-datetime.html#timestamp
但是,假设您TIMESTAMP_TYPE_MAPPING
仍然是 的默认值TIMESTAMP_NTZ
,那么您现在有一堆设置为 America/Los Angeles 的数据,值中没有时区偏移,并且如果您不打算更改任何帐户时区设置,那么您要么需要保留它,只需在使用该CONVERT_TIMEZONE
函数选择数据时更改时区,或者您应该将表定义更改为包含时区偏移的数据类型。您还可以通过使用相同的函数对其进行转换来按原样更新该列CONVERT_TIMEZONE
,但未来的数据仍将使用美国/洛杉矶时区插入。
我的建议是TIMESTAMP_TZ
用作您的列类型并相应地修改当前数据。
推荐阅读
- c# - 在列表中查找唯一参数的总和 - linq
- javascript - 将复选框字段存储到数据库中
- c - 使用指针的反向数组元素的意外输出
- reactjs - 状态如何将数据存储在redux中的react native?
- javascript - Chrome 更新 - 无法在“URL”上执行“createObjectURL”
- javascript - 弹出js对话框onclick表格行并显示php信息
- java - Spring RestTemplate POST 请求不适用于 HttpEntity
- android - 如何在 Xamarin Native Android 中使用 CalendarDateRangePicker 启用过去的日期?
- python - Python - 通过鼠标单击从“While True”循环中退出程序
- jquery - 在 Jquery UI datepicker 中在日期旁边显示动态价格