UPDATE
Een veel betere indexvriendelijke manier om uw gegevens op te vragen voor een reeks datums
SELECT id, FROM_UNIXTIME(timestampfield) timestamp
FROM table1
WHERE timestampfield >= UNIX_TIMESTAMP(LAST_DAY(CURDATE()) + INTERVAL 1 DAY - INTERVAL 1 MONTH)
AND timestampfield < UNIX_TIMESTAMP(LAST_DAY(CURDATE()) + INTERVAL 1 DAY);
Opmerking: U past geen enkele functie toe op uw kolomgegevens, maar voert alle noodzakelijke berekeningen uit aan de rechterkant van de voorwaarden (die constanten zijn en slechts eenmaal na uitvoering worden geëvalueerd). Op deze manier laat je MySQL profiteren van index(en) die je mogelijk in het timestampfield
hebt staan kolom.
Oorspronkelijke antwoord:
SELECT id, FROM_UNIXTIME(timestampfield) timestamp
FROM table1
WHERE MONTH(FROM_UNIXTIME(timestampfield)) = MONTH(CURDATE())
AND YEAR(FROM_UNIXTIME(timestampfield)) = YEAR(CURDATE())
Opmerking: Hoewel deze zoekopdracht de juiste resultaten oplevert, maakt deze in feite het juiste gebruik van de index(en) die u mogelijk in het timestampfield
hebt staan ongeldig. kolom (wat betekent dat MySQL gedwongen wordt een volledige scan uit te voeren)
Hier is SQLFiddle demo