MYSQL выбрать дату из доступных диапазонов дат, ближайших к текущей дате - PullRequest
1 голос
/ 12 августа 2011

У меня есть вопрос, касающийся запросов MYSQL, и как я могу обработать получение ближайшего диапазона дат к текущей дате ...

Итак, у меня есть записи в виде идентификатора, от_даты до,

Учитывая текущую дату, я хотел бы выбрать запись, которая включает в себя не только текущую дату, но, если существует более одной записи, которая удовлетворяет требованию, та, которая имеет даты от и до ближайшихна текущую дату, например:

, если:

record1: from_date1, until_date1
record2: from_date2, until_date2

from_date1 <= current_date <= until_date1
from_date2 <= current_date <= until_date2

from_date1 >= from_date2 and until_date1 <= until_date2

record1 должен быть выбран ...

Я ищу синтаксис запроса selectчтобы достичь этого ...

Надеюсь, я достаточно ясен в своем примере ... любая помощь будет принята с благодарностью!

Спасибо!:)

Петр.

1 Ответ

2 голосов
/ 12 августа 2011
SELECT from_date, until_date
    FROM table
    WHERE current_date BETWEEN from_date
        AND until_date
    ORDER BY TIMESTAMPDIFF(SECOND, from_date, until_date)
    LIMIT 1

выбирает все записи, которые соответствуют условию; последний не подчиняется 100% - что если from_date2 очень близко к current_date, но until_date2 так далеко, что промежуток времени больше?

...