Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak porównać dwie wartości DATE na podstawie tylko części daty w Oracle?

W tym przypadku wystarczy TRUNC z prawej strony:

WHERE date_occured >= TRUNC(CURRENT_DATE - 30)

Czemu? Ponieważ jeśli TRUNC(data_wystąpienia) jest późniejsza niż TRUNC(CURRENT_DATE - 30), to dowolna chwila po TRUNC(data_wystąpienia) musi być również późniejsza niż TRUNC(CURRENT_DATE - 30).

Oczywiście zawsze jest prawdą, że date_occured>=TRUNC(data_occured) (pomyśl o tym).

Logika mówi, że jeśli A>=B i B>=C, to wynika z tego, że A>=C

Teraz zastąp:

  • A:data_wystąpienia
  • B:TRUNC(data_wystąpienia)
  • C:TRUNC(BIEŻĄCA_DATA – 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. Dlaczego ORACLE nie zezwala na kolejne znaki nowego wiersza w poleceniach?

  2. Indeks na widoku (Oracle)

  3. co dzieje się w fazie przecięcia adop w R12.2

  4. Powód uzyskania ORA-01422:dokładne pobieranie zwraca więcej niż żądaną liczbę wierszy

  5. Importowanie z sprawdzania poprawności bazy danych Oracle