我有表temp
,其结构位于 sqlfiddle :
id(int 11 primary key)
name(varchar 100)
name2(varchar 100)
date(datetime)
我想获得本周的记录,例如,如果现在是 2013 年 11 月 21 日,我想要 2013 年 11 月 18 日到 2013 年 11 月 24 日(本周)的所有行
现在我看到下一个算法:
- 获取工作日
- 计算星期一是多少天前
- 计算星期一的日期
- 计算 future 日期周日
- 在指定日期提出请求
请告诉我,是否存在更短的算法(最好在查询 MySQL 中)?
添加问题是:为什么 this query选择日期 17.11.2013(星期日) - 23.11.2013(星期六)
的记录以及如何获取日期 18.11.2013(星期一) - 24.11.2013(星期日)
的记录?
查询:
select * from temp
where yearweek(`date`) = yearweek(curdate())
谢谢!
最佳答案
使用YEARWEEK()
:
SELECT *
FROM your_table
WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)
关于MySQL:如何选择本周的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51068564/