Oracle
 sql >> Base de données >  >> RDS >> Oracle

COMMENT RÉCUPÉRER DES DONNÉES ENTRE 2 DATES DANS ORACLE SQL DEVELOPER

Une date n'a pas de format - elle est stockée en interne dans la base de données sous la forme de 7 octets (représentant l'année, le mois, le jour, l'heure, la minute et la seconde) et ce n'est que lorsque l'interface utilisateur que vous utilisez (c'est-à-dire SQL/Plus, SQL Developer, Java, etc.) essaie de l'afficher pour vous, l'utilisateur, et convertit en quelque chose que vous trouveriez significatif (généralement une chaîne) que la date a un format.

Pour résoudre votre requête, il vous suffit d'entourer la chaîne de date de guillemets simples et d'utiliser YY pour correspondre au format de l'année à 2 chiffres (sinon Oracle supposera que 17 au format YYYY est l'année 0017 et le siècle ne sera pas comme prévu ):

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'); 

Cependant, vous pouvez également utiliser des littéraux de date (et éviter de faire correspondre le modèle de format de date) :

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