sql >> Databasteknik >  >> RDS >> Mysql

MySQL - välj data från databasen mellan två datum

Ditt problem är att den korta versionen av datum använder midnatt som standard. Så din fråga är faktiskt:

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

Det är därför du inte ser rekordet för 10:45.

Ändra det till:

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

Du kan också använda:

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

Vilket kommer att välja alla användare i samma intervall som du letar efter.

Du kanske också tycker att operatorn MELLAN är mer läsbar:

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


  1. Hur kan jag logga och hitta de dyraste frågorna?

  2. MySQL LOG10()-funktion – Returnera bas-10-logaritmen för ett värde

  3. Ta bort identitet från en kolumn i en tabell

  4. Så här fixar du säkerhetsrådgivarens MySQL-varning