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

MySQL - wybierz dane z bazy danych pomiędzy dwiema datami

Twój problem polega na tym, że krótka wersja dat używa północy jako domyślnej. Twoje zapytanie to w rzeczywistości:

SELECT users.* FROM users 
WHERE created_at >= '2011-12-01 00:00:00' 
AND created_at <= '2011-12-06 00:00:00'

Dlatego nie widzisz rekordu o 10:45.

Zmień go na:

SELECT users.* FROM users 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-07'

Możesz także użyć:

SELECT users.* from users 
WHERE created_at >= '2011-12-01' 
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)

Który wybierze wszystkich użytkowników w tym samym przedziale, którego szukasz.

Może się również okazać, że operator BETWEEN jest bardziej czytelny:

SELECT users.* from users 
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));


  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 wybrać pierwszy wiersz dla każdej grupy w MySQL?

  2. MySQL:Klonowanie bazy danych MySQL na tej samej instancji MySql

  3. AKTUALIZACJA PHP MYSQL, jeśli istnieje lub INSERT, jeśli nie?

  4. Błąd 1022 — Nie można pisać; zduplikowany klucz w tabeli

  5. Jak wykonać kopię zapasową bazy danych Moodle MySQL