MySQL espera literais de data , não inteiros:
SELECT *
FROM table
WHERE DATE(timestamp_field) BETWEEN '2012-03-01' AND '2012-05-04'
Para usar inteiros (assumindo que eles são segundos desde a época do UNIX), primeiro converta-os usando o
FROM_UNIXTIME()
função:SELECT *
FROM table
WHERE timestamp_field BETWEEN FROM_UNIXTIME(1330560000)
AND FROM_UNIXTIME(1336170420)
Ou então use
UNIX_TIMESTAMP()
para converter sua coluna em sua representação UNIX:SELECT *
FROM table
WHERE UNIX_TIMESTAMP(timestamp_field) BETWEEN 1330560000 AND 1336170420