У меня есть очень грязное поле даты, которое загружается из нескольких систем, каждая со своим собственным форматом даты.
У меня есть:
ДД-ММ-ГГ чч:мм:сс.сссс
ДД-ПН-ГГ чч:мм:сс
ДД-ММ-ГГГГ чч:мм:сс.сссс
Все это хранится в поле varchar2. Теперь мне нужно выполнять поиск между диапазонами дат, и это вызывает у меня проблемы. Как я могу подойти к этому?
Вот некоторые фрагменты кода, которые я пробовал:
Стандартный substr работает хорошо, но я не могу учитывать разные форматы даты:
select substr(created_on, 1,9) as date2 from rtl.HK_Alerts
В идеале, если я смогу заставить это работать:
select to_date(created_on, 'dd-mon-yy') as date_convert from rtl.HK_Alerts
Тогда я могу сделать это:
select * from my_table
where to_date(created_on, 'dd-mon-yy') > '01-Jan-1970'
and to_date(***strong text***created_on, 'dd-mon-yy') < '31-Jan-1970'
Кроме того, как мне учитывать разные форматы даты из разных систем? К сожалению, нет системного идентификатора, с которым я мог бы работать.
вот изображение некоторых дат:
07-ЯНВ-19 01.53.47.702000000
07-ЯНВ-19 01.53.47.992000000
07-ЯНВ-19 01.53.48.186000000
07-ЯНВ-19 01.53.48.360000000-1.-ЯН-1.500000
097 .48.548000000
07-ЯНВ-19 01.53.48.709000000
07-ЯНВ-19 01.53.48.900000000
20-ЯНВ-19 22.49.30.801000000
20-ЯНВ-19 22.004.3
-JAN-19 22.49.33.968000000