Een datum heeft geen formaat - het wordt intern opgeslagen in de database als 7-bytes (wat staat voor jaar, maand, dag, uur, minuut en seconde) en het is pas als de gebruikersinterface die u gebruikt (d.w.z. SQL/Plus, SQL Developer, Java, enz.) deze aan u, de gebruiker, probeert weer te geven en converteert het in iets dat je zinvol zou vinden (meestal een string) dat de datum een formaat heeft.
Om uw zoekopdracht op te lossen, hoeft u alleen maar de datumreeks tussen enkele aanhalingstekens te plaatsen en YY
. te gebruiken overeenkomen met het 2-cijferige jaarformaat (anders gaat Oracle ervan uit dat 17
in het formaat YYYY
is het jaar 0017
en de eeuw zal niet zijn zoals je verwacht
):
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');
U kunt echter ook letterlijke datums gebruiken (en overslaan om overeen te komen met het datumformaatmodel):
select sum(TOTAL_AMOUNT)
from table a
where trn_date between DATE '2017-04-01'
AND DATE '2017-05-31';