MySQL:Кто сегодня “занят” между двумя разными датами
Вопрос
У меня проблема с Mysql.(Я использую PHP вместе с ним).
Например, у меня есть такая база данных:
Название | Начато и | закончится
Джейсон | 2009-12-17 | 2009-12-24
Эрике | 2009-12-12 | 2009-12-30
Мария | 2010-01-02 | 2010-01-10
С вопросом mysql (или php) я хотел бы получить имена людей, которые "включены" прямо сейчас (2009-12-19).
Ответ должен быть таким:
Джейсон
Эрике
Заранее благодарю вас за вашу огромную помощь!
Решение
как насчет запроса , в котором вы сравниваете даты ?
Что-то подобное, я полагаю, должно сработать :
select name
from your_table
where started <= curdate()
and will_end >= curdate()
Примечания :
- Конечно, вам нужно будет скорректировать названия таблиц и столбцов
- и, возможно, вы захотите использовать
>
и<
вместо того , чтобы>=
и<=
;зависит от ваших данных. - Я использую
curdate()
функция, которая получает дату текущего дня - мне это нравится больше, чем вводить дату в запрос с помощью какого-нибудь PHP-кода.
Другие советы
SELECT *
FROM `table`
WHERE CURDATE() BETWEEN `startdate` AND `enddate`
Не связан с StackOverflow