使用 TO_DATE for MM/DD/YY 将字符串转换为日期给出了 1970 年之前日期的错误值 [snowflake-cloud-data-platform]
converting string to date using TO_DATE for MM/DD/YY gives wrong values for dates before 1970 [snowflake-cloud-data-platform]
正在尝试使用 TO_DATE 函数将日期字符串 03/31/69 转换为 1969-03-31 标准日期格式。
SELECT TO_DATE('03/31/69', 'MM/DD/YY');
预期值为 1969-03-31,但我得到的是 2069-03-31。
请告诉我如何正确处理雪花中 MM/DD/YY 格式的世纪。
这适用于1970 年之后的日期。它 returns 正确的世纪信息。仅适用于 1970 年 之前的日期,其转换为 21 世纪 。如果这是已知行为,请告诉我。如果是这样,如何将此类格式转换为标准日期格式?
在 Snowflake 中,YY
的解释方式取决于 the TWO_DIGIT_CENTURY_START
session parameter,默认为 1970。
要获得您想要的输入数据结果,您需要将参数更改为不大于 1969 的值:
ALTER SESSION SET TWO_DIGIT_CENTURY_START = 1950;
SELECT TO_DATE('03/31/69', 'MM/DD/YY');
正在尝试使用 TO_DATE 函数将日期字符串 03/31/69 转换为 1969-03-31 标准日期格式。
SELECT TO_DATE('03/31/69', 'MM/DD/YY');
预期值为 1969-03-31,但我得到的是 2069-03-31。
请告诉我如何正确处理雪花中 MM/DD/YY 格式的世纪。
这适用于1970 年之后的日期。它 returns 正确的世纪信息。仅适用于 1970 年 之前的日期,其转换为 21 世纪 。如果这是已知行为,请告诉我。如果是这样,如何将此类格式转换为标准日期格式?
在 Snowflake 中,YY
的解释方式取决于 the TWO_DIGIT_CENTURY_START
session parameter,默认为 1970。
要获得您想要的输入数据结果,您需要将参数更改为不大于 1969 的值:
ALTER SESSION SET TWO_DIGIT_CENTURY_START = 1950;
SELECT TO_DATE('03/31/69', 'MM/DD/YY');