¿Hay alguna forma en una declaración MySQL de ordenar registros (a través de un sello de fecha) por> = AHORA () -1 para que se seleccionen todos los registros desde el día anterior hasta el futuro?
138
A juzgar por la documentación de las funciones de fecha / hora , debería poder hacer algo como:
SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY
Tenga en cuenta que el resultado puede ser ligeramente diferente de lo esperado.
NOW()
devuelve aDATETIME
.Y
INTERVAL
funciona como se nombra, por ejemploINTERVAL 1 DAY = 24 hours
.Por lo tanto, si su secuencia de comandos está programada para ejecutarse
03:00
, perderá elfirst three hours of records from the 'oldest' day
.Para aprovechar todo el día
CURDATE() - INTERVAL 1 DAY
. Esto volverá al comienzo del día anterior, independientemente de cuándo se ejecute el script.fuente
Ya casi estás allí: es
NOW() - INTERVAL 1 DAY
fuente
Seguro que puede:
fuente
DATE_ADD
entonces-1 day
.No vi ninguna respuesta correctamente usando
DATE_ADD
oDATE_SUB
:Restar 1 día de
NOW()
Agregar 1 día desde
NOW()
fuente
cuando el campo de búsqueda tiene una marca de tiempo y desea buscar registros de 0 horas ayer y 0 horas hoy, use construcción
en lugar
fuente