Вы должны определить «эту неделю» лучше - вы имеете в виду 7-дневное скользящее окно с центром на сегодня или неделю (которая включает «сегодня»), начиная, например. в воскресенье? Это полностью зависит от семантики «этой недели», и мы не можем решить, что вы имели в виду под этим неоднозначным выражением. Из двух упомянутых вами подходов один или другой (или вариант по нему) будут подходящими в зависимости от вашего значения.
Редактировать : ФП пояснил в комментарии, что он имеет в виду «неделю, которая включает« сегодня »и начинается в воскресенье» - и из его использования FROM_UNIXTIME
я делаю вывод, Диалект SQL, на который он нацелен, - MySQL. Тогда WEEK(somedate, 0)
- это функция MySQL, которая должна дать ему именно то, что он хочет, см. документы mysql .
В частности,
AND WEEK(CURDATE, 0) BETWEEN WEEK(FROM_UNIXTIME(e.event_start), 0)
AND WEEK(FROM_UNIXTIME(e.event_end), 0)
должно быть предложением WHERE
, которое ищет OP.