sql >> Databasteknik >  >> RDS >> Mysql

MySQL välj alla rader från förra månaden fram till (nu() - 1 månad), i jämförande syfte

Du kan få den första i månaden genom att beräkna den sista_dagen i månaden innan och lägga till en dag. Det är besvärligt, men jag tror att det är bättre än att formatera ett datum som en sträng och använda det för beräkning.

select 
  *
from
  yourtable t
where
  /* Greater or equal to the start of last month */
  t.date >= DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH)), INTERVAL 1 DAY) and
  /* Smaller or equal than one month ago */
  t.date <= DATE_SUB(NOW(), INTERVAL 1 MONTH)


  1. Lägg till 2 månader till aktuell tidsstämpel

  2. Att använda Solr sökindex som en databas - är det fel?

  3. Dynamisk orderriktning

  4. Vad är lösningen för att använda dynamisk SQL i en lagrad procedur