我是Teradata的新手。我需要在case语句中检查日期列是否有有效日期。此列为“YYYY-MM-DD”格式。如果此字段无效,则需要使用'1900-01-01'作为默认值。有人可以指导我吗?
答案 0 :(得分:1)
这是检查它的方法
select
case when CALENDAR_DATE is null then cast('1900-01-01' as date format 'YYYY-MM-DD')
else cast(datee as date format 'YYYY-MM-DD') end valid_date
from YOUR_TABLE XYZ
LEFT OUTER JOIN
SYS_CALENDAR.CALENDAR CAL ON (CALENDAR_DATE (FORMAT 'YYYY-MM-DD') (CHAR(10))) = XYZ.datee;
这是一个以前讨论过所有可能解决方案的链接。 https://forums.teradata.com/forum/database/to-find-invalid-dates