Het belangrijkste idee is om order by
. te gebruiken en limit
:
Als je eerst de dichtstbijzijnde wilt:
SELECT one
FROM table
WHERE datetimefield <= '2014-12-10 09:45:00'
ORDER BY datetimefield DESC
LIMIT 1;
Als je de dichtstbijzijnde wilt, in beide richtingen, gebruik dan TIMESTAMPDIFF()
:
ORDER BY abs(TIMESTAMPDIFF(second, datetimefield, '2014-12-10 09:45:00'))
LIMIT 1