teradata yymmdd日期格式

时间:2017-01-11 15:45:55

标签: date format teradata

我有一个字段,应该是6位字符,但它是数字。我使用以下代码添加前导零:

选择CAST(CAST(CHD_OPEN_DATE AS FORMAT' 9(6)')AS CHAR(9))

我使用以下代码将其格式化为日期:

施放(强制转换(lpad(to_char(CHD_OPEN_DATE),6,' 0')作为日期格式' YYMMDD')作为日期格式' YYYY-MM-DD&# 39)

当使用这种日期格式时,1990年会出现在2090年。是否有解决办法?

1 个答案:

答案 0 :(得分:0)

如果您的号码具有YYMMDD格式,则可以使用以下内容转换为日期,而无需转换为中间字符串。假设日期范围在1930年到2029年之间:

SELECT 900331 AS CHD_OPEN_DATE,
Cast(CASE WHEN CHD_OPEN_DATE < 300000
          THEN CHD_OPEN_DATE + 1000000
          ELSE CHD_OPEN_DATE
     END AS DATE)