Mysql
 sql >> Base de données >  >> RDS >> Mysql

Trouver la date-heure la plus proche de la date-heure spécifiée dans la requête mysql

L'idée clé est d'utiliser order by et limit :

Si vous voulez le plus proche avant :

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

Si vous voulez le plus proche, dans les deux sens, utilisez TIMESTAMPDIFF() :

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