Estoy tratando de ejecutar una declaración de selección de mysql donde mira la fecha de hoy y solo devuelve los resultados que se registraron en ese día actual. Actualmente he intentado lo siguiente, pero parece que no funciona.
SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d')
FROM users
WHERE users.signup_date = CURDATE()
Modifiqué mi SELECTdeclaración a esto, gracias chicos.
SELECT id FROM users WHERE DATE(signup_date) = CURDATE()

signup_datees el campo de fecha y horasignup_datesi contiene la hora, entonces querrá usar el formato date_format en laWHEREcláusula para quitar la hora para que coincida conCURDATE()mysql_num_rowsno muestra 0. Solo un espacio en blanco.Respuestas:
fuente
DATETIME.signup_date, incluso si tal índice existe). Prefiero la solución de Serjio .< '2017-08-31 00:00:00'en caso de que esté usando una versión de MySQL con milisegundos.Esta consulta usará index si lo tiene para el
signup_datecampofuente
signup_date, a diferencia de otros enfoques.signup_dateentre dos tiempos es correcta, pero los tiempos no lo son. Debe ser entre00:00y23:59:59en la fecha actual.WHERE DATE(signup_date) = CURDATE()tomó mi servidor de ~ 50 ms, esta de aquí 0,8 ms.Parece que necesita agregar el formato a
WHERE:Ver SQL Fiddle con demostración
fuente
Puede usar
CONCATconCURDATE()para todo el tiempo del día y luego filtrar usando la condiciónBETWEENinWHERE:fuente