Я используюMySQL Попадая отчеты в течение последних рабочей недели
WHERE WEEK(curdate,3)-WEEK(date)=1
, чтобы получить все строки таблицы, которые записаны на прошлой рабочей недели (с понедельника по воскресенье). Хорошо работает круглый год, но в январе, что будет возвращать 0 в течение некоторого времени, так что я должен принять
WHERE WEEK(curdate,3)+53-WEEK(date)
в этом случае. Я не могу использовать OR
, потому что это будет как информация о текущем году, так и информация в прошлом году, когда они существуют. Я уже пробовал COALESCE
и IFNULL
методы:
WHERE COALESCE(
(WEEK(curdate(),3)-WEEK(date,3) = 1),
(WEEK(curdate(),3)+53-WEEK(date,3) = 1
)
Это хорошо работает в течение всего года, но не обходится случай, когда IFNULL
верно. Пожалуйста, дайте мне советы по эффективному обращению с этим случаем.