Вы все немного перепутали. TO_DATE преобразует строку в DATE. Если date_column_timestamp
уже является датой, вам не нужно преобразовывать ее в дату.
select trunc(SOMEINPUTdATE) from table1
where trunc(date_column_timestamp)
>= to_date('03/11/2011' ,'MM/DD/YYYY')
ORA-01843
вызвано неявным преобразованием даты в строку. Другими словами, следующее:
to_date(trunc(date_column_timestamp),'MM/DD/YYYY')
эквивалентно (при условии формата даты по умолчанию DD-MON-YYYY
):
to_date(TO_CHAR(trunc(date_column_timestamp),'DD-MON-YYYY'),'MM/DD/YYYY')
Итак, TO_CHAR
возвращает что-то вроде '11-MAR-2011'
, что приводит к сбою to_date
, поскольку форматы даты не совпадают.
Та же проблема существует в вашем предложении select
. Вам не нужно to_date
около trunc
столбца даты.