Oracle
 sql >> Database >  >> RDS >> Oracle

COME RECUPERARE I DATI TRA 2 DATE IN ORACLE SQL DEVELOPER

Una data non ha un formato:è memorizzata internamente nel database come 7 byte (che rappresentano anno, mese, giorno, ora, minuti e secondi) e non è fino a quando l'interfaccia utente che stai utilizzando (ad esempio SQL/Plus, SQL Developer, Java, ecc.) non tenta di mostrarlo a te, all'utente e converte in qualcosa che potresti trovare significativo (di solito una stringa) che la data abbia un formato.

Per correggere la tua richiesta devi solo racchiudere la stringa della data tra virgolette singole e utilizzare YY in modo che corrisponda al formato dell'anno a 2 cifre (altrimenti Oracle presumerà che 17 nel formato YYYY è l'anno 0017 e il secolo non sarà come ti aspetti ):

select sum(TOTAL_AMOUNT)
from   table a
where  trn_date between TO_DATE('01-APR-17', 'DD-MON-YY')
                    AND TO_DATE('31-MAR-17', 'DD-MON-YY'); 

Tuttavia, puoi anche utilizzare i valori letterali della data (e saltare la corrispondenza con il modello del formato della data):

select sum(TOTAL_AMOUNT)
from   table a
where  trn_date between DATE '2017-04-01'
                    AND DATE '2017-05-31';