Ciao, qui trovi una serie di funzioni Mysql per lavorare con le date.
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.htmlCi sono varie soluzioni, ad esempio una è quella di usare DATE_ADD per sottrarre alla data corrente un certo numero di giorni.
Ad esempio, per ottenere tutti i record dall'inizio della settimana corrente, sottrarrò un numero di giorni pari a ciò che mi restituisce WEEKDAY (cioè il giorno della settimana)
SELECT * FROM tabella WHERE campodata >= DATE_ADD('2011-11-23', INTERVAL -WEEKDAY('2011-11-23') DAY)
e così per il mese corrente
SELECT * FROM tabella WHERE campodata >= DATE_ADD('2011-11-23', INTERVAL -DAY('2011-11-23')+1 DAY)
e l'anno
SELECT * FROM tabella WHERE campodata >= DATE_ADD('2011-11-23', INTERVAL -DAYOFYEAR('2011-11-23')+1 DAY)
ciao,