我需要找出存储日期的单个varchar列中有多少种不同类型的日期格式。
条目太多,因此无法手动执行。
请建议一个SQL查询,以查找列中包含不同格式的日期格式。
答案 0 :(得分:0)
你应该创建这样的函数:
CREATE OR REPLACE function f_invalid_date(date_field in varchar2,format_field in varchar2) return number as
v_d date;
begin
v_d := TO_DATE(date_field, format_field);
return 0;
exception
when others then
return 1;
end;
你可以像这样控制:
select
f_invalid_date(your_varchar_column/*'20160606'*/,'yyyymmdd' ) is_date_valid
from
your_table;
如果您的is_date_valid
列 0 ,则它对您的发送格式有效。
因此,您可以尝试所有日期格式并计算它们。