从星期六开始选择当前周日

时间:2017-04-22 21:45:05

标签: mysql

  

我想要id的日期加入是星期六到星期五晚上。

SELECT id 
  FROM signup 
 WHERE yearweek(DATE(datejoin), 6) = yearweek(curdate(), 6)

2 个答案:

答案 0 :(得分:1)

你可以使用WeekDay函数,这个函数返回一周中每周的整数值,从星期一的0到星期日的6,如果你从当前日期减去WeekDay,你会得到上周一的日期,如果你想要下一个星期五的日期,你可以通过这样的查询得到它:

CURDATE() - INTERVAL WEEKDAY(CURDATE()) - 4 DAY

在你的查询中你想从星期六到星期五开始你的一周,所以你的查询结果取决于当前的星期几,如果当前星期几是星期五(从0到4),你应该得到日期下个星期五但如果当周的某一天是在星期五(5或6)之后你应该得到下周五的星期五!你周末(星期六)也有这种情况

看看这个查询,我希望你能够清楚地知道:

SELECT id FROM signup WHERE 
datejoin BETWEEN
 (CASE
  WHEN WEEKDAY(CURDATE()) > 4 THEN
   (CURDATE() - INTERVAL WEEKDAY(CURDATE()) - 5 DAY)
  ELSE
   (CURDATE() - INTERVAL WEEKDAY(CURDATE()) + 2 DAY)
 END)
  AND
 (CASE
   WHEN WEEKDAY(CURDATE()) > 4 THEN
    (CURDATE() - INTERVAL WEEKDAY(CURDATE()) - 11 DAY)
   ELSE
    (CURDATE() - INTERVAL WEEKDAY(CURDATE()) - 4 DAY)
  END)

答案 1 :(得分:0)

  

答案:

来自注册的SELECT id,其中datejoin介于(CURRENT_DATE - INTERVAL 7 DAY)和CURRENT_DATE之间