sql >> Databasteknik >  >> RDS >> Mysql

MySQL Välj senaste månadsdata efter aktuell_tidsstämpel

Detta ger dig den senaste månaden:

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

Detta från början av månaden:

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

MELLAN är inget speciellt, det är bara en genväg för

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

Hmm, jag antar att NOW()-jämförelsen faktiskt inte behövs, eftersom alla poster kommer att vara tidigare.

Så gör bara:

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

Dynamisk start på innevarande månad:

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

Allt detta gör är att extrahera dagen i månaden från det aktuella datumet, och sedan subtrahera de många dagar mindre en från det.



  1. Konvertera mysql-tabeller från latin1 till utf8

  2. Hur konverterar man 1985-02-07T00:00:00.000Z (ISO8601) till ett datumvärde i Oracle?

  3. Hur ersätter man varannan instans av ett visst tecken i en MySQL-sträng?

  4. MySQL-stöd för Python som inte är under GPL-liknande licenser