Reputation: 4296
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
Upvotes: 8
Views: 100226
Reputation: 61
USE:
select distinct file_name as r
from table_1
where view_day >= TRUNC(SYSDATE-10)
Upvotes: 6
Reputation: 16905
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
Upvotes: 18
Reputation: 94645
Error shows that a VIEW_DAY
column is varchar so you need to convert DATE to String. Use TO_CHAR
or convert VIEW_DAY
to date type.
Upvotes: 0