web-dev-qa-db-fra.com

Comparer date avec sysdate dans Oracle

J'ai une colonne de type "DATE" et je souhaite y exécuter une requête en la comparant à sysdate.

Mais j'obtiens l'erreur suivante, quelqu'un peut-il me faire savoir ce que je manque ici? 

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
6
TopCoder

Vous ne devriez pas utiliser to_date à une date, To_date sert à lancer un varchar à ce jour, pas une date.
Si vous utilisez la fonction to_date à une date, Oracle la désignera comme une chaîne conformément à nls_date_format, qui peut varier selon les environnements.
Comme l'a dit @jonearles, si vous voulez supprimer l'heure de sysdate, utilisez TRUNC.

16
A.B.Cade

UTILISATION:

select distinct file_name as r 
from table_1 
where view_day >= TRUNC(SYSDATE-10)
6

Une erreur indique qu'une colonne VIEW_DAY est varchar. Vous devez donc convertir DATE en chaîne. Utilisez TO_CHAR ou convertissez VIEW_DAY en type de date.

0
adatapost