select subdate(‘20150329‘,weekday(‘20150329‘)); -- 周一 select subdate(‘20150323‘,weekday(‘20150323‘)-6);-- 周日 weekday() 函数和 dayofweek() ,date_format(curdate(),‘%w‘)类似,都是返回“某天”在一周中的位置。不同点在于参考的标准, weekday:(0 = Monday, 1 = Tuesday, …, 6 = Sunday); dayofweek:(1 = Sunday, 2 = Monday, …, 7 = Saturday) %w 是以数字的形式来表示周中的天数( 0 = Sunday, 1=Monday, . . ., 6=Saturday),0为周日,6为周六,跟我们一般的认知,一周是从周一开始的并不一样。
原文:http://my.oschina.net/flyxiang/blog/392793