У меня проблема с запросом, где условия связаны с TIMESTAMP column. Поэтому у меня есть таблица с именем table1, которая имеет две колонки start_time
и end_time
. Оба магазина хранят TIMESTAMP. Я хочу запросить мою базу данных для определенных строк, где end_time
выше заданного значения временной метки и ниже заданного значения временной метки. В основном я хочу получить все строки, где end_time
находится между данными TIMESTAMP.select timestamp from mysql
Я обнаружил, что в моем случае следующего запроса работает:
SELECT * FROM table1
WHERE UNIX_TIMESTAMP(end_time) >= FROM_UNIXTIME('2015-11-30 20:14:00')
AND UNIX_TIMESTAMP(end_time) <= FROM_UNIXTIME('2015-11-30 20:14:05')
Но это не то, что я хочу. Я хочу дать TIMESTAMP значение вместо DATE.
Что также странно, что этот запрос возвращает значения, которые имеют end_time
на более раннюю дату, чем данный временной метки:
SELECT * FROM table1 WHERE end_time > FROM_UNIXTIME('2015-11-30 20:20:05')
Запрос выше возвращает строки, в которых end_timestamp
является 2015-11-30 20:18:05
Я чувствую, что здесь что-то отсутствует. Должен ли я использовать INT вместо TIMESTAMP для моего end_time
? Я считаю, что следующий запрос должен возвращать ожидаемые значения, но это не дает мне ничего:
SELECT * FROM table1
WHERE end_time >= FROM_UNIXTIME(1448914740)
AND end_time <= FROM_UNIXTIME(1448914810)