Snowsql 两位数世纪开始日期转换问题

Din*_*edi 1 snowflake-cloud-data-platform snowsql

我想要2000-02-05在snowsql 中使用以下查询的结果。

alter session set  TWO_DIGIT_CENTURY_START=2000;
select cast ('05-FEB-00' as date) from dual;
Run Code Online (Sandbox Code Playgroud)

但我得到0001-02-05. 我正在使用现有脚本在适用于 oracle 的雪花中加载日期。我知道我可以使用 to_date 函数获得预期的结果,但我不想这样做。如果我必须,那么我已经改变了脚本中的许多地方,这是忙碌的。

我想要使​​用 cast 函数的解决方案。有谁知道这里发生了什么?

小智 5

您首先需要为输入数据指定非默认日期格式。在上面的例子中:

alter session set date_input_format = 'DD-MON-YY';
Run Code Online (Sandbox Code Playgroud)

然后

alter session set  TWO_DIGIT_CENTURY_START=2000;
select cast ('05-FEB-00' as date) from dual;
Run Code Online (Sandbox Code Playgroud)

产量:

2000-02-05