Mi potete dare una mano a creare questa query sql?

table utenti (*id,page,ip,user_agent,referer,date)


# ultime 100 visite in ordine dalla più recente
select * from utenti order by date desc limit 0,100

# visite totali
select count(*) as visite from utenti

# visite di questo mese
select count(*) as visite from utenti where date = ?

# visite mese precedente
select count(*) as visite from utenti where date = ?

# visite di questa settimana
select count(*) as visite from utenti where date = ?

# visite della settimana precedente
select count(*) as visite from utenti where date = ?

# visite di oggi
select count(*) as visite from utenti where date = ?

# visite di ieri
select count(*) as visite from utenti where date = ?

o forse dovrei modificare proprio la tabella?

grazie