2011-12-17 8 views

Respuesta

145

A juzgar por el documentation for date/time functions, usted debería ser capaz de hacer algo como:

SELECT * FROM FOO 
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY 
+0

funciona perfectamente, gracias! – user1092780

+0

cómo llegar ahora a ... significa la fecha actual de todos los registros que están disponibles en db. ? esto es solo por un día, pero necesito todo el registro ahora en palabras. @jon –

6

Claro que puedes:

SELECT * FROM table 
WHERE DateStamp > DATE_ADD(NOW(), INTERVAL -1 DAY) 
28

Tenga en cuenta que el resultado puede ser ligeramente diferente de lo que esperabas.

NOW() devuelve un DATETIME.

Y INTERVAL funciona con el nombre, p. Ej. INTERVAL 1 DAY = 24 hours.

Por lo tanto, si el script se ejecuta cron en 03:00, se perderá el first three hours of records from the 'oldest' day.

Para obtener el uso de día completo CURDATE() - INTERVAL 1 DAY. Esto volverá al comienzo del día anterior independientemente de cuándo se ejecuta el script.

+1

Es un complemento muy útil a la respuesta aceptada, gracias. –

0

al campo de búsqueda es marca de tiempo y se desea encontrar los registros de las 0 horas 0 horas ayer y hoy en día el uso de la construcción

MY_DATE_TIME_FIELD between makedate(year(now()), date_format(now(),'%j')-1) and makedate(year(now()), date_format(now(),'%j')) 

lugar

now() - interval 1 day 
Cuestiones relacionadas