一尘不染

MySQL:如何选择本周的记录?

mysql

temp sqlfiddle 上有结构表:

id(int 11 primary key)
name(varchar 100)
name2(varchar 100)
date(datetime)

我想在本周获得记录,例如,如果现在是2013年11月21日,我希望将2013年11月18日至2013年11月24日的所有行(在星期中)

现在我看下一个算法:

  1. 获得工作日
  2. 计算多少天前是星期一
  3. 计算星期一的日期
  4. 计算周日的未来日期
  5. 要求日期

请告诉我,是否存在一个较短的算法(最好在查询MySQL中)?

添加的问题是: 为什么 此查询
选择日期记录,17.11.2013(Sunday) - 23.11.2013(Saturday)以及如何获取日期记录18.11.2013(Monday) - 24.11.2013(Sunday)

查询:

select * from temp
where yearweek(`date`) = yearweek(curdate())

谢谢!


阅读 232

收藏
2020-05-17

共1个答案

一尘不染

用途YEARWEEK()

SELECT *
FROM   your_table
WHERE  YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)
2020-05-17