@RomyGalaxy

Как осуществить проверку по дате в MYSQL?

Задача сделать запись пользователя не больше двух раз в неделю, в таблице есть поле date. Как правильно составить запрос sql чтобы он проверял дату?
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
@alexalexes
не больше двух раз в неделю

Формулировка требует некоторых уточнений.
Если лимит определен на календарную неделю, и счет обращений сбрасывается в понедельник, то нужен такой запрос проверки:
select count(*) as cnt -- кол-во записей на этой неделе
from record as r
where r.user_id = ? -- пользователь
  -- дата текущего понедельника (от curdate()) <= r.add_date < дата следующего понедельника (от curdate())   
  and r.add_date >= subdate(curdate(), interval weekday(curdate()) day) -- текущ. понедельник с точки зрения curdate()
  and r.add_date < subdate(curdate(), interval weekday(curdate()) - 7 day) -- следующий понедельник с точки зрения curdate()

Если лимит определен просто на интервал 7 дней, то такой запрос:
select count(*) as cnt -- кол-во записей за последние 7 дней
from record as r
where r.user_id = ? -- пользователь
  and r.add_date > subdate(curdate(), interval 7 day)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы