sql >> Databasteknik >  >> RDS >> Mysql

mysql välj tidsstämplar mellan a och b och returnerar alla eller 0 tidsstämplar

MySQL förväntar sig dateliterals , inte heltalsettor:

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

För att använda heltal (förutsatt att de är sekunder sedan UNIX-epoken), konvertera dem först med MySQL:s FROM_UNIXTIME() funktion:

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

Eller använd UNIX_TIMESTAMP() för att konvertera din kolumn till dess UNIX-representation:

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


  1. Proceduren förväntar sig parameter som inte tillhandahölls

  2. Ställa in och identifiera radmål i genomförandeplaner

  3. Finns det något sätt att använda Linq till Oracle

  4. PostgreSQL 9.0 Säkerhetskopiering och återställning