Можно ли выбрать ближайшую запись по заданной дате?
Есть некая таблица (c полями id, datetime, sum). Хранится дата в формате YYYY-m-d H:i:s.
В этой таблице много записей.
У нас есть нужный sum, который мы должны выбрать и нужная дата.
Необходимо достать одно ближайшее значение по дате (в обе стороны), содержащее нужный sum.
SELECT * FROM my_table WHERE datetime < %s ORDER BY datetime DESC LIMIT 1
UNION
SELECT * FROM my_table WHERE datetime >= %s ORDER BY datetime ASC LIMIT 1
ну как один из вариантов - оперировать разницей дат - например получить первую запись, отсортированную по возрастанию этой дельты, точнее абсолютного ее значения.
в mssql синтаксисе это будет выглядеть как
select top 1 ... from ... order by abs(datediff(sec,date1,date2))