sql >> Database >  >> RDS >> Oracle

Oracle-datumvergelijking in waar-clausule

Niet helemaal, de DATE datatype heeft geen formaat; het wordt intern in tabellen opgeslagen als 7-bytes (jaar is 2 bytes en maand, dag, uur, minuut en seconde zijn elk 1 byte). De gebruikersinterface die u gebruikt (d.w.z. SQL/PLUS, SQL Developer, Toad, enz.) zal de opmaak van een DATE afhandelen van het binaire formaat naar een voor mensen leesbaar formaat. In SQL/Plus (of SQL Developer) is dit formaat gebaseerd op de NLS_DATE_FORMAT sessieparameter .

Als de DATE wordt ingevoerd met alleen de dag, maand en jaar, dan wordt de tijdcomponent (waarschijnlijk) ingesteld op 00:00:00 (middernacht).

Ervan uitgaande dat de tijdcomponent voor uw DOJ-kolom altijd middernacht is, dan:

SELECT COUNT(*)
FROM   students
WHERE  doj = TO_DATE( your_param, 'dd/mm/yyyy' )

Als het niet altijd middernacht is, dan:

SELECT COUNT(*)
FROM   students
WHERE  TRUNC( doj ) = TO_DATE( your_param, 'dd/mm/yyyy' )

of:

SELECT COUNT(*)
FROM   students
WHERE  doj >= TO_DATE( your_param, 'dd/mm/yyyy' )
AND    doj <  TO_DATE( your_param, 'dd/mm/yyyy' ) + INTERVAL '1' DAY


  1. Een doorlopend totaal voor een voortschrijdende periode maken

  2. Hoe een fout op te lossen die wordt veroorzaakt doordat libmysqlclient.15.dylib niet wordt geladen?

  3. dblink bestaat niet, ook al bestaat de extensie al?

  4. MySql UTF-codering