MySQL:Кто сегодня “занят” между двумя разными датами

StackOverflow https://stackoverflow.com/questions/1933435

Вопрос

У меня проблема с 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`
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top