Как выбрать период в MySQL, используя поле даты в качестве метки времени Unix? - PullRequest
0 голосов
/ 09 октября 2010

У меня есть таблица с полем, в котором я храню дату в метке времени Unix, например, 1286515961.

Нужно выбрать записи за месяц, например, «Октябрь 2010».

Я бы хотел выбрать записи непосредственно в запросе MySQL для скорости, но с использованием метки времени Unix.

Кто-нибудь может мне помочь? Спасибо уже

Ответы [ 2 ]

0 голосов
/ 09 октября 2010

Хороший ответ Алек

это будет:

SELECT * FROM table WHERE FROM_UNIXTIME(date) >= '2010-10-01' AND FROM_UNIXTIME(date) <  '2010-11-01'

, но на самом деле быстрее сделать это наоборот.преобразовать ваши границы в метку времени Unix, а затем выполнить сравнение.поэтому преобразование нужно выполнять не для каждой строки в таблице, а только для границ, тогда внутренние целые числа можно сравнивать, что намного быстрее, чем преобразование в объекты даты и времени ... как ...

SELECT * FROM table 
WHERE date >= UNIX_TIMESTAMP('2010-10-01') 
AND date <  UNIX_TIMESTAMP('2010-11-01')

(не проверено)

0 голосов
/ 09 октября 2010

Самый простой способ - использовать FROM_UNIXTIME :

SELECT *
FROM table
WHERE FROM_UNIXTIME(date) >= '2010-10-01'
  AND FROM_UNIXTIME(date) <  '2010-11-01'
...