Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como comparar dois valores DATE com base apenas na parte da data no Oracle?


Para esta condição, você só precisa TRUNC do lado direito:
WHERE date_occured >= TRUNC(CURRENT_DATE - 30)

Por quê? Porque se TRUNC(date_occured) for posterior a TRUNC(CURRENT_DATE - 30), então qualquer momento após TRUNC(date_occured) também será posterior a TRUNC(CURRENT_DATE - 30).

Obviamente, é sempre verdade que date_occured>=TRUNC(date_occured) (pense nisso).

A lógica diz que se A>=B e B>=C então segue que A>=C

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