Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Как найти ближайшую дату к указанной?


Автор: TheAviator 26.12.2005, 22:27
Сабж.
Имею дату типа 2005-06-01 00:00:00.
Имею базу с полем DT, где даты хранятся в таком же формате.
Как найти номер (Id) поля, значение даты в котором наиболее близко к заданной?
Спасибо.

Автор: Mal Hack 26.12.2005, 22:36
Выбираем записи сортируем по дате DESC, LIMIT 1.
Если надо дату как позже так и раньше, то двумя запросами, либо извратом через UNION SELECT или вложенным СЕЛЕКТом.

Автор: mr.fox 27.12.2005, 05:01
where dt between 'x' and 'y'

Автор: Mal Hack 27.12.2005, 09:00
mr.fox не факт, что будет именно в этом диапазоне ближайшая дата.

Автор: Akina 27.12.2005, 09:44
О версии MySQL нам предлагается догадаться самим...
Цитата
DATEDIFF() returns the number of days between the start date expr and the end date expr2. expr and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.

Так что ORDER BY ABS(DATEDIFF()) ASC LIMIT 1
Цитата
DATEDIFF() was added in MySQL 4.1.1

Автор: TheAviator 28.12.2005, 23:08
Akina: Thanks a lot!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)