雪花 - 插入日期
Snowflake - insert date
我的值为 12/31/18
并在 snowflake 中创建了 table:
create table my_date (a date);
insert into my_date values ('12/31/18');
select * from my_date;
结果:0018-12-31
我想得到:2018-12-31
我看到了大约 2 种数字格式:
https://docs.snowflake.net/manuals/sql-reference/parameters.html#label-two-digit-century-start
但不确定这是列类型的规范还是在插入之前需要转换数据?
当参数date_input_format
设置为AUTO
时,参数two_digit_century_start
似乎没有被使用。您可以通过使用参数(下面第 2 行的 "alter session..." 语句)设置日期格式来使您的示例正常工作。您完整的工作示例如下所示:
create table my_date (a date);
alter session set DATE_INPUT_FORMAT = 'MM/DD/YY';
insert into my_date values ('12/31/18');
select * from my_date;
这导致 2018-12-31
。
Snowflake 最佳实践建议使用 to_date(value, 'format')
或通过在参数中设置格式来明确指定格式。您可以从此处的 Snowflake 文档中找到 date/time 函数的最佳实践:https://docs.snowflake.net/manuals/user-guide/date-time-input-output.html#date-time-function-format-best-practices
我的值为 12/31/18
并在 snowflake 中创建了 table:
create table my_date (a date);
insert into my_date values ('12/31/18');
select * from my_date;
结果:0018-12-31
我想得到:2018-12-31
我看到了大约 2 种数字格式:
https://docs.snowflake.net/manuals/sql-reference/parameters.html#label-two-digit-century-start
但不确定这是列类型的规范还是在插入之前需要转换数据?
当参数date_input_format
设置为AUTO
时,参数two_digit_century_start
似乎没有被使用。您可以通过使用参数(下面第 2 行的 "alter session..." 语句)设置日期格式来使您的示例正常工作。您完整的工作示例如下所示:
create table my_date (a date);
alter session set DATE_INPUT_FORMAT = 'MM/DD/YY';
insert into my_date values ('12/31/18');
select * from my_date;
这导致 2018-12-31
。
Snowflake 最佳实践建议使用 to_date(value, 'format')
或通过在参数中设置格式来明确指定格式。您可以从此处的 Snowflake 文档中找到 date/time 函数的最佳实践:https://docs.snowflake.net/manuals/user-guide/date-time-input-output.html#date-time-function-format-best-practices