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

Wie vergleiche ich zwei DATE-Werte nur basierend auf dem Datumsteil in Oracle?

Für diese Bedingung müssen Sie nur die rechte Seite TRUNC:

WHERE date_occured >= TRUNC(CURRENT_DATE - 30)

Wieso den? Denn wenn TRUNC(date_occured) später als TRUNC(CURRENT_DATE - 30) ist, dann ist jeder Zeitpunkt nach TRUNC(date_occured) zwangsläufig auch später als TRUNC(CURRENT_DATE - 30).

Offensichtlich gilt immer date_occured>=TRUNC(date_occured) (denken Sie darüber nach).

Die Logik sagt, dass wenn A>=B und B>=C dann folgt, dass A>=C

Jetzt ersetzen:

  • A :date_occured
  • B :TRUNC(date_occured)
  • C :TRUNC(CURRENT_DATE - 30)