sql >> Databáze >  >> RDS >> Mysql

MySQL Vyberte data za minulý měsíc podle current_timestamp

Tím získáte poslední měsíc:

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

Toto od začátku měsíce:

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

BETWEEN není nic zvláštního, je to jen zkratka pro

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

Hmm, myslím, že porovnání NOW() ve skutečnosti není potřeba, protože všechny záznamy budou dříve.

Takže udělejte:

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

Dynamický začátek aktuálního měsíce:

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

Vše, co to dělá, je extrahovat den v měsíci z aktuálního data a poté od něj odečíst tolik dní méně o jeden.



  1. 8 způsobů, jak přidat dny k datu v MariaDB

  2. SQL:Řetězení spojuje efektivitu

  3. MySQL CURRENT_TIMESTAMP při vytvoření a aktualizaci

  4. 3 způsoby, jak získat název dne z data v MariaDB