sql >> Databasteknik >  >> RDS >> Oracle

HUR MAN HÄMTAR DATA MELLAN 2 DATUM I ORACLE SQL Developer

Ett datum har inget format - det är lagrat internt i databasen som 7-byte (representerar år, månad, dag, timme, minut och sekund) och det är inte förrän vilket användargränssnitt du än använder (t.ex. SQL/Plus, SQL Developer, Java, etc) försöker visa det för dig, användaren, och konverterar det till något du skulle tycka är meningsfullt (vanligtvis en sträng) att datumet har ett format.

För att fixa din fråga behöver du bara omge datumsträngen med enkla citattecken och använda YY för att matcha det tvåsiffriga årsformatet (annars kommer Oracle att anta att 17 i formatet YYYY är årtalet 0017 och århundradet kommer inte att bli som du förväntar dig ):

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

Du kan dock även använda datumbokstav (och hoppa över att behöva matcha datumformatmodellen):

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


  1. MySQL - Gruppera efter med Order by DESC

  2. Läs e-post imap php

  3. MySQL-fråga för att välja resultat med automatisk ökning som en ny kolumn som läggs till i resultatet

  4. Rails 3 ignorerar Postgres unika begränsningsundantag