In un record ho un campo valorizzato con una data.

Eseguo un istruzione che mi estrae tutti quei record che contengono una data pari a 15 gg indietro rispetto alla data odierna.

Attualmente lo script è erroneamente riportato in questo modo:

select * from PIPPO where
(TO_CHAR(SYSDATE, 'YYYYMMDD'))-(substr(rtrim(libero8),-4,4) || substr(rtrim(libero8),-7,2) || substr(rtrim(libero8),1,2))>15


così facendo si converte la data in formato testo e si sottrae dalla data numerica odierna la data contenuta nel campo.

Ma questa logica non funziona correttamente al cambio mese, perchè si può trovare una situazione di questo tipo:

20031202 -
20031128
----------
74

Il valore torna 74 ma non è corretto. dal 28/11 al 02/12 sono passati solo 5 gg

Il risultato che vorrei ottenere è estrarre tutti quei record che hanno un campo data superiore a 15 passati dalla data odierna.

Come posso fare??

Grazie