Oracle
 sql >> Datenbank >  >> RDS >> Oracle

WIE MAN DATEN ZWISCHEN 2 DATEN IN ORACLE SQL DEVELOPER ABRUFT

Ein Datum hat kein Format – es wird intern in der Datenbank als 7 Byte gespeichert (repräsentiert Jahr, Monat, Tag, Stunde, Minute und Sekunde) und erst dann, wenn die von Ihnen verwendete Benutzeroberfläche (z. B. SQL/Plus, SQL Developer, Java usw.) versucht, sie Ihnen, dem Benutzer, anzuzeigen und konvertiert es in etwas Sinnvolles umzuwandeln (normalerweise eine Zeichenkette), dass das Datum ein Format hat.

Um Ihre Abfrage zu korrigieren, müssen Sie nur die Datumszeichenfolge in einfache Anführungszeichen setzen und YY verwenden um dem zweistelligen Jahresformat zu entsprechen (sonst geht Oracle davon aus, dass 17 im Format YYYY ist das Jahr 0017 und das Jahrhundert wird nicht so sein, wie Sie es erwarten ):

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

Sie können jedoch auch Datumsliterale verwenden (und die Anpassung an das Datumsformatmodell überspringen):

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