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
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.
UTILISATION:
select distinct file_name as r
from table_1
where view_day >= TRUNC(SYSDATE-10)
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.