sql >> Database >  >> RDS >> Oracle

Hoe twee DATE-waarden te vergelijken die alleen zijn gebaseerd op het datumgedeelte in Oracle?

Voor deze aandoening hoeft u alleen de rechterkant af te kappen:

WHERE date_occured >= TRUNC(CURRENT_DATE - 30)

Waarom? Omdat als TRUNC(date_occured) later is dan TRUNC(CURRENT_DATE - 30), dan zal elk moment na TRUNC(date_occured) ook later zijn dan TRUNC(CURRENT_DATE - 30).

Het is natuurlijk altijd waar dat date_occured>=TRUNC(date_occured) (denk er eens over na).

Logica zegt dat als A>=B en B>=C dan volgt dat A>=C

Vervang nu:

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


  1. Langste voorvoegselovereenkomst

  2. Wat gebeurt er met afhankelijke triggers wanneer de tabel wordt verwijderd?

  3. Tabel maken in procedure

  4. Hoe de gegevens in unicode in hindi-taal op te slaan?