雪花 - 插入日期

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