teradata yymmdd 日期格式
teradata yymmdd date format
我有一个字段应该是 6 位字符,但它是数字。我正在使用以下代码添加前导零:
select CAST(CAST(CHD_OPEN_DATE AS FORMAT '9(6)') AS CHAR(9))
我正在使用以下代码将其格式化为日期:
cast(cast(lpad(to_char(CHD_OPEN_DATE),6,'0') as date format 'YYMMDD') as date format 'YYYY-MM-DD')
使用这种日期格式时,1990 年显示为 2090。是否有解决方法?
如果您的号码采用 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)
我有一个字段应该是 6 位字符,但它是数字。我正在使用以下代码添加前导零:
select CAST(CAST(CHD_OPEN_DATE AS FORMAT '9(6)') AS CHAR(9))
我正在使用以下代码将其格式化为日期:
cast(cast(lpad(to_char(CHD_OPEN_DATE),6,'0') as date format 'YYMMDD') as date format 'YYYY-MM-DD')
使用这种日期格式时,1990 年显示为 2090。是否有解决方法?
如果您的号码采用 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)