Используйте функцию TO_DATE для перевода текста в дату.
Вроде так:
to_date('2/6/2009 6:30:00 PM', 'MM/DD/YYYY HH12:MI:SS AM')
Если вы используете имя поля вместо постоянной строки, вы получите значение поля, переведенное в дату. Вы можете сравнить его в своем запросе или вернуть и сравнить его в коде PL / SQL, используя обычные операторы> или <. </p>
Но, конечно, лучше сохранить дату как дату. :) Если хотите, вы можете сделать пошаговое преобразование:
Сначала добавьте столбец даты в таблицу и напишите триггер, который
обновляет поле stringdate всякий раз, когда вводится дата.
create or replace trigger DATESYNC before insert or update of YOURNEWDATEFIELD
on YOURTABLE for each row
begin
:new.CURRENTSTRINGDATE := to_char(:new.YOURNEWDATEFIELD, 'MM/DD/YYYY HH12:MI:SS AM');
end;
Затем отредактируйте графический интерфейс, который вы используете для ввода даты в поле даты
вместо строкового поля. Весь другой код все еще будет использовать
строковое поле и будет продолжать работать.
Напишите оператор обновления, который использует to_data
для преобразования каждого текста в дату.
Затем вы можете по одному исключить весь код, который читает строку
поле и обновите его, чтобы использовать поле даты. Весь код, который еще не преобразован, все еще будет работать, потому что триггер все еще обновляет строковое поле.
После того, как весь код преобразован, удалите строковое поле и триггер.
Это сделает ваш код быстрее, ваши данные более компактными, а ваши запросы будут лучше использовать индексы в поле даты.