Oracle
 sql >> Database >  >> RDS >> Oracle

Come confrontare due valori DATE basati solo sulla parte della data in Oracle?

Per questa condizione è sufficiente TRUNC il lato destro:

WHERE date_occured >= TRUNC(CURRENT_DATE - 30)

Come mai? Perché se TRUNC(date_occured) è successivo a TRUNC(CURRENT_DATE - 30), allora qualsiasi momento successivo a TRUNC(date_occured) è destinato ad essere successivo anche a TRUNC(CURRENT_DATE - 30).

Ovviamente è sempre vero che date_occured>=TRUNC(date_occured) (pensaci).

La logica dice che se A>=B e B>=C allora segue che A>=C

Ora sostituisci:

  • R:data_avvenuta
  • B :TRUNC(data_occorsa)
  • C :TRUNC(CURRENT_DATE - 30)