代码之家  ›  专栏  ›  技术社区  ›  Dinesh Subedi

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

  •  2
  • Dinesh Subedi  · 技术社区  · 6 年前

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

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

    但我正在 0001-02-05 。 我正在使用现有脚本在snowflake中加载日期,该脚本适用于oracle。我知道我可以使用to\u date函数得到预期的结果,但我不想这样做。如果必须的话,我会在剧本中改变很多地方,这是非常忙碌的。

    我想解决使用铸造功能。有人知道这里发生了什么吗?

    1 回复  |  直到 6 年前
        1
  •  5
  •   Stuart Ozer    6 年前

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

    alter session set date_input_format = 'DD-MON-YY';
    

    然后

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

    收益率:

    2000-02-05