我正在使用
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
真实情况下无法处理。请给我关于如何有效处理此案的建议。