我需要获取两周数之间的所有记录。这是我现在使用的查询:
SELECT huxwz_user_orders . * , huxwz_users.name, huxwz_users.email FROM huxwz_user_orders
LEFT OUTER JOIN huxwz_users ON ( huxwz_user_orders.userid = huxwz_users.id )
WHERE
(STATUS=3 or STATUS=2)
AND plannedweek > 0
AND plannedweek >= WEEK(DATE_ADD(now(), interval 1 WEEK))
AND plannedweek < WEEK(DATE_ADD(now(), interval 3 WEEK))
AND NOT plannedweek=0
该查询运行良好,并返回提供的两个星期之间的所有记录。但是,当我将 16 添加到查询的 < 结尾时。MySQL 解释 16 周应该加上当前周(42),所以是 16+42 = 58。由于我们没有 58 周,只有 52 周,所以它必须是第六周。这正是它应该做的。
问题是,当我想查找两个值之间的所有记录时,它确实像上面那样。它看起来像这样:
获取所有 > 42 和 < 16 的记录。这没有任何意义,而且它显然不会返回任何内容。
所以,我的记录有一年,所以我知道是哪一年。我在想一些类似的事情:如果一周是明年,则将值加 52。但这是不可靠的,因为并非每年都有 52 周。
我该怎么做?
有什么建议/解决方案吗?