Comparing date with sysdate in oracle

TopCoder picture TopCoder · Feb 5, 2012 · Viewed 92.4k times · Source

I have a column which is of "DATE" type and I want to run a query on it comparing it with sysdate.

But I am getting following error, Can someone please let me know what I am missing here?

SQL> select distinct file_name as r 
     from table_1 
     where view_day >= TO_DATE(SYSDATE-10, 'YYYY/MM/DD');

ERROR at line 1:
ORA-01858: a non-numeric character was found where a numeric was expected

Answer

A.B.Cade picture A.B.Cade · Feb 5, 2012

You shouldn't use to_date on a date, To_date is for casting a varchar to date, not a date.
If you do use the function to_date on a date, then oracle will refer to it as a string according to nls_date_format which may vary in different environments.
As @jonearles said, if you want to remove the time in sysdate then use TRUNC