Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie Mysql Datediff

Wygląda na to, że próbujesz to zrobić:

WHERE specific_date < (NOW() + 5 days)

Przede wszystkim zastanów się dokładnie nad przypadkami brzegowymi. Te przypadki graniczne mogą ugryźć kostki w SQL. Czy naprawdę chcesz

WHERE specific_date <= (NOW() + 5 days)

Zrób swoją specific_date sygnatury czasowe kolumn zawierają tylko dni (czyli daty z czasem równym północy), czy też zawierają daty i godziny? Jeśli zamierzasz uzyskać pożądane wyniki, musisz uważać na te szczegóły.

W każdym razie spróbuj tego:

WHERE specific_date <= DATE_ADD(NOW(), INTERVAL 5 DAY)

To dobry sposób na wykonanie takiego wyszukiwania. Wartość kolumny stoi samotnie po jednej stronie predykatu nierówności (<= ), aby mySQL mógł przeprowadzić skanowanie zakresu indeksów, jeśli masz indeks w kolumnie.

Arytmetyka dat w MySQL jest dość elastyczna. Możesz zrobić

   NOW() + INTERVAL 10 SECOND
   NOW() - INTERVAL 2 MINUTE
   NOW() + INTERVAL 4 HOUR
   CURDATE() - INTERVAL 1 WEEK /* midnight one week ago */
   LAST_DAY(NOW()) + INTERVAL 1 DAY - INTERVAL 1 MONTH  /*first day of present month*/
   NOW() - INTERVAL 1 QUARTER
   CURDATE() - INTERVAL 5 YEAR

i tak dalej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak mogę zmodyfikować klucz obcy?

  2. Jaki jest najlepszy sposób przechowywania obrazów użytkowników przy użyciu PHP i MySQL?

  3. Gdzie dodać sterownik jdbc w Netbeans/Glassfish w systemie Windows?

  4. c3p0 mówi - java.lang.Wyjątek:TYLKO DEBUGOWANIE:Zaległy ślad stosu pobierania zasobów podczas uruchamiania transakcji hibernacji

  5. Nie można rzutować obiektu typu „System.DBNull” na typ „System.Byte[]”.