sql >> Database >  >> RDS >> Mysql

MySQL - selecteer gegevens uit de database tussen twee datums

Uw probleem is dat de korte versie van datums middernacht als standaard gebruikt. Dus uw vraag is eigenlijk:

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

Dit is de reden waarom je het record voor 10:45 niet ziet.

Verander het in:

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

U kunt ook het volgende gebruiken:

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

Die alle gebruikers selecteert in hetzelfde interval waarnaar u op zoek bent.

Mogelijk vindt u de operator BETWEEN ook beter leesbaar:

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


  1. Top 3 redenen waarom mensen overstappen op SaaS

  2. Datum ophalen met tijdzoneverschuiving

  3. De status van database-instanties controleren

  4. PostgreSQL-index versus InnoDB-index - De verschillen begrijpen