Quick thoughts...
Assuming date is a legit date, also not in future....
For this month (assuming you mean calendar month and not 30 days ago...)
Code:
SELECT * FROM tablename WHERE MONTH(NOW()) = MONTH( date )
AND YEAR( NOW() ) = YEAR( date )
For this week (assuming you mean calendar week and not 7 days ago...)
Code:
SELECT * FROM tablename WHERE WEEK(NOW()) = WEEK( date )
AND YEAR( NOW() ) = YEAR( date )
as a start. This does fail over New Years, but you could add an OR phrase to cover that.
mySQL WEEK function has a second arguement where you can set whether your week starts on Sunday or Monday.
You might also look into the YEARWEEK function that might fix the New Years problem with WEEK