sql >> Base de Datos >  >> RDS >> Mysql

Encuentre la fecha y hora más cercana a la fecha y hora especificada en la consulta mysql

La idea clave es usar order by y limit :

Si quieres el más cercano antes:

SELECT one
FROM table
WHERE datetimefield <= '2014-12-10 09:45:00'
ORDER BY datetimefield DESC
LIMIT 1;

Si desea el más cercano, en cualquier dirección, utilice TIMESTAMPDIFF() :

ORDER BY abs(TIMESTAMPDIFF(second, datetimefield, '2014-12-10 09:45:00'))
LIMIT 1