Структура базы данных:
activities: id, description, date, time, endDate, endTime, userId
Итак, у нас есть действие, требуется дата, время, endDate и endTime не требуются.
Проблема в том, что если я хочу получить все сегодняшние действия, я получил:
SELECT A.*, U.*
FROM activities
JOIN users U
ON U.id = A.userId
WHERE DATE(A.date) = DATE(CURDATE())
Таким образом, indead получит все сегодняшние действия, но что, если у нас есть действие, которое началось вчера, а дата окончания будет завтра, мне все еще нужно получить действие?
Нам нужны все мероприятия, которые будут происходить на следующих выходных, поэтому мы получили этот запрос:
SELECT A.*, U.*
FROM activities
JOIN users U
ON U.id = A.userId
WHERE UNIX_TIMESTAMP(A.DATE) BETWEEN strtotime('previous saturday')
AND (strtotime('previous monday') - 1)
Но еще раз: что, если «свидание» назначено на пятницу и закончится во вторник, и я получу все мероприятия, которые происходят на выходных, мне все еще нужно получить это мероприятие, как мне решить эту проблему?
Большое спасибо уже за помощь! :)