Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да сравня две стойности на DATE въз основа само на част от датата в Oracle?

За това условие трябва само да TRUNC дясната страна:

WHERE date_occured >= TRUNC(CURRENT_DATE - 30)

Защо? Защото ако TRUNC(date_occured) е по-късно от TRUNC(CURRENT_DATE - 30), тогава всеки момент след TRUNC(date_occured) също трябва да бъде по-късно от TRUNC(CURRENT_DATE - 30).

Очевидно винаги е вярно, че date_occured>=TRUNC(date_occured) (помислете за това).

Логиката казва, че ако A>=B и B>=C, тогава следва, че A>=C

Сега заместете:

  • A:дата_настъпила
  • B:TRUNC(date_occured)
  • C:TRUNC(CURRENT_DATE - 30)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете съхранена процедура на Oracle, която може да връща конкретни обекти, както и всички обекти

  2. В Oracle възможно ли е да се ВМЕСНА или АКТУАЛИЗИРА запис чрез изглед?

  3. Java:Извикване на съхранена процедура в база данни на Oracle

  4. Oracle:Ляво съединяване на много голяма таблица и ограничаване на съединените редове до един с най-голямата стойност на полето

  5. Ако данните съществуват, в противен случай... използвайки Oracle SQL?