Order by the datetime difference (ascending, obviously, since you want the smallest difference), e.g.
ORDER BY ABS(datetime_col - NOW()) ASC LIMIT 1
EDIT: Note that I used the absolute value of the difference... you could add in a WHERE condition that only selects positive or negative differences, depending upon your specific needs.