Mysql
 sql >> Database >  >> RDS >> Mysql

Trova datetime più vicine a datetime specificate nella query MySQL

L'idea chiave è usare order by e limit :

Se vuoi quello più vicino prima:

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

Se vuoi il più vicino, in entrambe le direzioni, usa TIMESTAMPDIFF() :

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