我有以下格式的数据。
id - autoincrement
myDate - timestamp
我想提取的是上周的ID。
注意上周,我指的是从周六到周四,而不是持续7天。考虑到目前的日期(2013年2月12日),对我来说,上周将是2-Feb-2013 to 8-Feb-2013
。
我知道你会说,一周从周日开始,但由于我在阿拉伯国家工作,这里周五休息,周六开始工作
我知道在过去的7天里,它将低于代码
BETWEEN NOW() and DATE_SUB(NOW(), INTERVAL 7 DAY)
sqlfiddle上的数据
您可以尝试以下方法来计算所需的结果吗:
SELECT *,WEEKOFYEAR(dt),DAYOFWEEK(dt),DAYNAME(dt), DAYOFWEEK(NOW()),WEEKOFYEAR(NOW())
FROM tab1
WHERE 1
AND
(
(DAYOFWEEK(NOW()) = 1 OR DAYOFWEEK(NOW()) = 6 OR DAYOFWEEK(NOW()) = 7)
AND
WEEKOFYEAR(dt) = WEEKOFYEAR(NOW()) AND DAYOFWEEK(dt) < 6
)
OR
(
(DAYOFWEEK(NOW()) = 2 OR DAYOFWEEK(NOW()) = 3 OR DAYOFWEEK(NOW()) = 4
OR DAYOFWEEK(NOW()) = 5)
AND
(
(
(WEEKOFYEAR(dt) = WEEKOFYEAR(NOW())-2 AND DAYOFWEEK(dt) >= 6)
OR
(WEEKOFYEAR(dt) = WEEKOFYEAR(NOW())-1 AND DAYOFWEEK(dt) > 1 AND DAYOFWEEK(dt) < 6)
)
)
);
我知道这不是最聪明的方法,但基于此,你可能会得到更好解决方案的提示。