Vous vous trompez un peu. TO_DATE convertit une chaîne en DATE. Si date_column_timestamp
est déjà une date, vous n'avez pas besoin de le convertir en date.
select trunc(SOMEINPUTdATE) from table1
where trunc(date_column_timestamp)
>= to_date('03/11/2011' ,'MM/DD/YYYY')
Le ORA-01843
est causé par la conversion implicite d'une date à chaîne. En d'autres termes, ce qui suit:
to_date(trunc(date_column_timestamp),'MM/DD/YYYY')
est équivalent à (en supposant que le format de date par défaut DD-MON-YYYY
):
to_date(TO_CHAR(trunc(date_column_timestamp),'DD-MON-YYYY'),'MM/DD/YYYY')
Ainsi, le TO_CHAR
retours quelque chose comme '11-MAR-2011'
, ce qui provoque alors to_date
à l'échec parce que la les formats de date ne correspondent pas.
Le même problème existe dans votre clause select
. Vous n'avez pas besoin de to_date
autour d'une colonne trunc
.