query - timestamp mysql example
Seleccionar registros de AHORA()-1 Día (5)
¿Hay alguna manera en una declaración de MySQL para ordenar registros (a través de un sello de fecha) por> = AHORA () -1 para que todos los registros desde el día antes de hoy hasta el futuro estén seleccionados?
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
Seguro que puede:
SELECT * FROM table
WHERE DateStamp > DATE_ADD(NOW(), INTERVAL -1 DAY)
Tenga en cuenta que el resultado puede ser ligeramente diferente de lo que esperaba.
NOW()
devuelve un DATETIME
.
Y INTERVAL
funciona como se nombra, por ejemplo, INTERVAL 1 DAY = 24 hours
.
Por lo tanto, si el script se ejecuta a las 03:00
, se perderán las first three hours of records from the ''oldest'' day
.
Para obtener el día completo, utilice CURDATE() - INTERVAL 1 DAY
. Esto volverá al comienzo del día anterior independientemente de cuándo se ejecuta el script.
Ya casi estás allí: es NOW() - INTERVAL 1 DAY
cuando el campo de búsqueda es la marca de tiempo y desea buscar registros de 0 horas de ayer y 0 horas de hoy, use construcción
MY_DATE_TIME_FIELD between makedate(year(now()), date_format(now(),''%j'')-1) and makedate(year(now()), date_format(now(),''%j''))
en lugar
now() - interval 1 day