Удалить записи за последние 6 месяцев Oracle

Я пытаюсь удалить все записи за последние 6 месяцев в моей таблице для ORACLE.

У меня сейчас

delete from table t 
where to_date(substr(t.DATE_SENT,1,10),'MM/DD/YYYY')  < add_months(trunc(sysdate), -6);

Формат строки в этой таблице '12/21/2015 12:00:00 AM',

П р и м е ч а н и е - Я понимаю, что это должен быть DATETIME, а не varchar2, но это просто varchar2, поэтому я сейчас пытаюсь найти обходной путь.

Этот запрос, кажется, несколько работает для select *, но затем завершается с SQL

Ошибка: ORA-01830: изображение в формате даты заканчивается перед преобразованием всей входной строки

Любая помощь будет оценена.

1 ответ

Нет необходимости SUBSTR, напрямую использовать TO_DATE в формате.

DELETE FROM t
      WHERE TO_DATE (t.DATE_SENT, 'MM/DD/YYYY HH:MI:SS AM') <
               ADD_MONTHS (TRUNC (SYSDATE), -6);
Другие вопросы по тегам