Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - sélectionne les données de la base de données entre deux dates

Votre problème est que la version courte des dates utilise minuit par défaut. Votre requête est donc :

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

C'est pourquoi vous ne voyez pas le record de 10h45.

Changez-le en :

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

Vous pouvez également utiliser :

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

Ce qui sélectionnera tous les utilisateurs dans le même intervalle que vous recherchez.

Vous pourriez également trouver l'opérateur BETWEEN plus lisible :

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