date - 使用 MM/DD/YY 的 TO_DATE 将字符串转换为日期会为 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 之后的日期。它返回正确的世纪信息。仅适用于 1970 年之前的日期,将其转换为 21 世纪。如果这是已知行为,请告诉我。如果是这样,如何将这些格式转换为标准日期格式?
解决方案
在 Snowflake 中,如何解释YY
取决于session 参数,默认为 1970。TWO_DIGIT_CENTURY_START
要获得您想要的输入数据结果,您需要将参数更改为不大于 1969 的值:
ALTER SESSION SET TWO_DIGIT_CENTURY_START = 1950;
SELECT TO_DATE('03/31/69', 'MM/DD/YY');
推荐阅读
- django - CustomUser 对象没有属性“方法”Django 3.0
- kubernetes - 部署在 EKS 上的服务在其 EXTERNAL-IP 上没有响应
- php - 试图将两个字符串值合并在一起
- javascript - 将html转换为JS文件中的html字符串
- java - Java:在 Spring Boot 中连接到服务时出现 SSLHandshake 异常
- git - 什么会导致本地 git 文件在计算机重新启动后恢复到以前的状态
- php - 提交表单 PHP 修改为 JQuery AJAX
- java - Mockito doAnswer()
- python - TypeError:owlready 库中的预期字符串或类似字节的对象
- node.js - 无法在 ubuntu 18.04 上运行 mongo