Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Encontre a data e hora mais próxima da data e hora especificada na consulta mysql


A ideia chave é usar order by e limit :

Se você quiser o mais próximo antes:
SELECT one
FROM table
WHERE datetimefield <= '2014-12-10 09:45:00'
ORDER BY datetimefield DESC
LIMIT 1;

Se você quiser o mais próximo, em qualquer direção, use TIMESTAMPDIFF() :
ORDER BY abs(TIMESTAMPDIFF(second, datetimefield, '2014-12-10 09:45:00'))
LIMIT 1