Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Selecionar dados do último mês por current_timestamp


Isso lhe dará o último mês:
WHERE dateColumn BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW();

Isso desde o início do mês:
WHERE dateColumn BETWEEN STR_TO_DATE('2012-09-01', '%Y-%m-%d') AND NOW();

O ENTRE não é nada de especial, é apenas um atalho para
dateColumn <= ... AND dateColumn >= ....

Hmm, acho que a comparação NOW() não é realmente necessária, já que todos os registros serão antes de agora.

Então é só fazer:
WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')

Início dinâmico do mês atual:
WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY

Tudo o que isso faz é extrair o dia do mês da data atual e subtrair tantos dias menos um dele.