mysql> select @dayofweek:= dayofweek(curdate()); +-----------------------------------+ | @dayofweek:= dayofweek(curdate()) | +-----------------------------------+ | 2 | +-----------------------------------+ 1 row in set (0.00 sec) mysql> select date_add(CURDATE(), INTERVAL (@dayofweek + if(dayofweek(curdate()) >= @dayofweek, 7, 0)) - DAYOFWEEK(CURDATE()) day); +----------------------------------------------------------------------------------------------------------------------+ | date_add(CURDATE(), INTERVAL (@dayofweek + if(dayofweek(curdate()) >= @dayofweek, 7, 0)) - DAYOFWEEK(CURDATE()) day) | +----------------------------------------------------------------------------------------------------------------------+ | 2007-11-05 | +----------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> select @dayofweek:=@dayofweek+1; +--------------------------+ | @dayofweek:=@dayofweek+1 | +--------------------------+ | 3 | +--------------------------+ 1 row in set (0.00 sec) mysql> select date_add(CURDATE(), INTERVAL (@dayofweek + if(dayofweek(curdate()) >= @dayofweek, 7, 0)) - DAYOFWEEK(CURDATE()) day); +----------------------------------------------------------------------------------------------------------------------+ | date_add(CURDATE(), INTERVAL (@dayofweek + if(dayofweek(curdate()) >= @dayofweek, 7, 0)) - DAYOFWEEK(CURDATE()) day) | +----------------------------------------------------------------------------------------------------------------------+ | 2007-10-30 | +----------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)