"DATE
"タイプの列があり、それをsysdateと比較してクエリを実行したいと思います。
しかし、次のエラーが発生します。ここで不足しているものを誰かに教えてもらえますか?
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
日付にはto_dateを使用しないでください。To_dateは、日付ではなくvarcharを日付にキャストするためのものです。
日付に関数to_dateを使用する場合、Oracleはそれをnls_date_formatに従って文字列として参照します。これは、環境によって異なる場合があります。
@ jonearlesが言ったように、sysdateの時間を削除する場合は、TRUNCを使用します
使用する:
select distinct file_name as r
from table_1
where view_day >= TRUNC(SYSDATE-10)
エラーは、VIEW_DAY
列はvarcharなので、DATEをStringに変換する必要があります。使用する TO_CHAR
または変換VIEW_DAY
日付タイプ。