sql >> Databasteknik >  >> RDS >> Mysql

Hitta närmaste datetime till specificerad datetime i mysql-frågan

Nyckelidén är att använda order by och limit :

Om du vill ha den närmaste innan:

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

Om du vill ha den närmaste, åt båda hållen, använd TIMESTAMPDIFF() :

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


  1. mysql SELECT IF-sats med OR

  2. Utlöser utlösare vid uppdatering av kolumnA eller kolumnB eller kolumnC

  3. SQL-antal - fungerar inte

  4. Lär dig grundläggande dataanalys med SQL-fönsterfunktioner