Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql seleciona timestamps entre a e b retornando todos ou 0 timestamps


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