在单个日期字段中查找日期格式

时间:2016-08-31 06:36:30

标签: sql oracle

我需要找出存储日期的单个varchar列中有多少种不同类型的日期格式。

条目太多,因此无法手动执行。

请建议一个SQL查询,以查找列中包含不同格式的日期格式。

1 个答案:

答案 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 ,则它对您的发送格式有效。

因此,您可以尝试所有日期格式并计算它们。