2016-11-10 5 views
0
select LASTCHANGEDATE 
from ROH_TRANSFER 
where LASTCHANGEDATE BETWEEN to_char(sysdate,'yyyy/mm/dd') - INTERVAL '10' DAY AND to_char(sysdate,'yyyy/mm/dd'); 

ための日時/区間演算のための無効なデータ型が、私は以下のエラーを取得しています:ORA-30081:上記のクエリについては、下記の問い合わせ

where LASTCHANGEDATE BETWEEN to_char(sysdate,'yyyy/mm/dd') - INTERVAL '10' DAY AND to_char(sysdate,'yyyy/mm/dd') 
          * 
ERROR at line 1: 
ORA-30081: invalid data type for datetime/interval arithmetic 

はこれを解決するには、ここで私を助けてください。 !

注:これは私のLASTCHANGEDATEの列の内容がどのように見えるかされています

LASTCHANGEDATE 
-------------------------------- 
2016/11/09 02:10:01.066 
2016/11/09 18:08:09.319 
+1

ので、列LASTCHANGEDATEの種類は何です: – bohuss

+0

こんにちは、私はちょうどto_char(sysdate、 'yyyy/mm/dd')としてsysdateを変更しました – Rohith

+0

しかし、今私は算術的なエラー..とつまらないです!それに応じて私の質問を編集させてください – Rohith

答えて

0
は、おそらくあなたはこれをやってみたかったですか?
+0

BPW_RECTRANSFERからLASTCHANGEDATEを選択します。ここで、LASTCHANGEDATE BETWEEN to_char(sysdate - INTERVAL '0' DAY、 'yyyy/mm/dd')およびto_char(sysdate、 'yyyy/mm/dd'このクエリは、今日のレコードを右に与えるでしょう..!?私はちょうどINTERVAL '0'を作った – Rohith

+0

あなたの例では、BPW_RECTRANSFERからLASTCHANGEDATEを選択するのと同じだと思います。LASTCHANGEDATE = to_char(sysdate、 'yyyy/mm/dd'); INTERVAL '0' DAYを引いても影響がないことに注意してください。 – bohuss

+0

DATEからCHARへの変換をどのような目的のために誤解していますか? – AlexSmet

1

あなたは算術演算や比較

を実行する前に、CHAR/VARCHARにDATEを変換する必要はありませんので、試してみてください。

select LASTCHANGEDATE 
    from ROH_TRANSFER 
where LASTCHANGEDATE between sysdate - INTERVAL '10' DAY AND sysdate; 

それとも、現在の日付を切り捨てるしたい場合

select LASTCHANGEDATE from ROH_TRANSFER where LASTCHANGEDATE BETWEEN to_char(sysdate - INTERVAL '10' DAY,'yyyy/mm/dd') AND to_char(sysdate,'yyyy/mm/dd') 
関連する問題