@aassdds
Люблю борщ и PHP

Как выбрать запись из БД по промежутку во времени?

День добрый всем !

Недавно дали новый проект - и столкнулся с следующим заданием

Юзер сайта может создать какой нить ивэнт, и при этом указать дату и время его старта, а так же дату и время его окончания

Ну а сервер потом должен эти ивэнты знач показать
Но - те ивенты, дата и время старта которых еще не наступила - показывать не надо

Вот собственно вопрос - как это лучше реализовать в БД
я думал вот так :
id
ivent_text
date_start (DATETIME)
date_end (DATETIME)

и потом в sql запросе сравнивать -
SELECT * FROM table WHERE date_start<CURDATE() AND date_end>CURDATE()


но чет не хочет работать...
потом нашел что помимо CURDATE есть CURTIME
получается мне надо добавить еще 2 поля в табличку (time_start, time_end) записывать в них сллтв время, и сравнивать уже по 4м полям сразу....

У меня такое чувство, что я делаю велосипед....
Можно ли как нибудь сделать это попроще ?
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
@kirill-93
Все правильно вы думаете, так и реализовывайте, только тип поля не DATETIME, а DATE, тогда все будет работать в вашем примере, но это если только по дате сравнивать. Или используйте DATETIME и NOW(), чтобы и по дате и по времени
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Writerim
@Writerim
Заполнить позже...
SELECT * FROM start < NOW() AND stop > NOW()

можно так сравнивать как вариант
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы