我有一张table temp
在sqlfiddle上使用结构:
id(int 11 primary key)
name(varchar 100)
name2(varchar 100)
date(datetime)
我希望获得本周的记录,例如,如果现在是2013年11月21日,我希望获得2013年11月18日至2013年11月24日(本周)的所有行
现在我看到下一个算法:
获取工作日
计算几天前是星期一
计算星期一的日期
计算未来日期星期日
提出日期要求
请告诉我,是否存在一个较短的算法(最好在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())
谢谢!
4条答案
按热度按时间3bygqnnd1#
使用
YEARWEEK()
:hgncfbus2#
使用
YEARWEEK
. 如果你使用WEEKOFYEAR
你也会得到前几年的记录。bzzcjhmw3#
要选择日、周和月的记录,请使用以下方法:
vwoqyblh4#
你可以用下面的方法来做
获取周数(从00到53),其中(星期日第一天和星期一最后一天)
可能对你有用。
例子: