Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql select timestamps between a and b return all or 0 timestamps

MySQL attend littéraux de date , et non des entiers :

SELECT *
FROM   table
WHERE  DATE(timestamp_field) BETWEEN '2012-03-01' AND '2012-05-04'

Pour utiliser des entiers (en supposant qu'ils sont des secondes depuis l'époque UNIX), convertissez-les d'abord à l'aide de MySQL FROM_UNIXTIME() fonction :

SELECT *
FROM   table
WHERE  timestamp_field BETWEEN FROM_UNIXTIME(1330560000)
                           AND FROM_UNIXTIME(1336170420)

Ou bien utilisez UNIX_TIMESTAMP() pour convertir votre colonne dans sa représentation UNIX :

SELECT *
FROM   table
WHERE  UNIX_TIMESTAMP(timestamp_field) BETWEEN 1330560000 AND 1336170420