Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Seleziona i dati del mese scorso in base al timestamp_corrente

Questo ti darà l'ultimo mese:

WHERE dateColumn BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW();

Questo dall'inizio del mese:

WHERE dateColumn BETWEEN STR_TO_DATE('2012-09-01', '%Y-%m-%d') AND NOW();

BETWEEN non è niente di speciale, è solo una scorciatoia per

dateColumn <= ... AND dateColumn >= ....

Hmm, suppongo che il confronto NOW() non sia effettivamente necessario, poiché tutti i record saranno prima di ora.

Quindi fai solo:

WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')

Inizio dinamico del mese corrente:

WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY

Tutto ciò che fa è estrarre il giorno del mese dalla data corrente, quindi sottrarre da essa quel numero di giorni in meno.