sql >> Database >  >> RDS >> Mysql

MySQL Selecteer de gegevens van de afgelopen maand op current_timestamp

Dit geeft je de laatste maand:

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

Dit vanaf het begin van de maand:

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

De TUSSEN is niets bijzonders, het is slechts een kortere weg voor

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

Hmm, ik denk dat de NU()-vergelijking eigenlijk niet nodig is, aangezien alle records voor nu zullen zijn.

Dus doe gewoon:

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

Dynamische start van de huidige maand:

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

Het enige wat dit doet is de dag van de maand van de huidige datum aftrekken en er vervolgens dat aantal dagen minder één van aftrekken.



  1. Mysql integer standaardwaarde 0

  2. Waarde '0000-00-00' kan niet worden weergegeven als java.sql.Date

  3. Unieke beperking van Postgres versus index

  4. tel datumverschil in uren met php en mysql