Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

COMO BUSCAR DADOS ENTRE 2 DATAS NO ORACLE SQL DEVELOPER


Uma data não tem um formato - ela é armazenada internamente no banco de dados como 7 bytes (representando ano, mês, dia, hora, minuto e segundo) e não é até que qualquer interface de usuário que você esteja usando (ou seja, SQL/Plus, SQL Developer, Java, etc.) em algo que você acharia significativo (geralmente uma string) que a data tem um formato.

Para corrigir sua consulta, basta colocar a string de data entre aspas simples e usar YY para corresponder ao formato de ano de 2 dígitos (caso contrário, a Oracle assumirá que 17 no formato YYYY é o ano 0017 e o século não será como você espera ):
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'); 

No entanto, você também pode usar literais de data (e pular a necessidade de corresponder ao modelo de formato de data):
select sum(TOTAL_AMOUNT)
from   table a
where  trn_date between DATE '2017-04-01'
                    AND DATE '2017-05-31';