2013-11-13 4 views
7

Есть ли у меня запрос на получение временного интервала - одну минуту, пять минут, четверть часа, полчаса, часа и дня? Я использую MySQL как базу данных.Получить временной интервал в mysql

+1

, что вы имеете в виду «получить интервал времени». что таблицы выглядят как – AwokeKnowing

+0

, они, вероятно, означают ... «2 дня назад» или что-то –

+0

да, как час назад, какие значения час назад. как это. на столе у ​​меня есть id, timestamp, а затем значение – hearmeroar

ответ

8

, чтобы получить диапазон, как от 30 до 45 минут назад, делать как этот

SELECT * FROM tbl 
WHERE tbl.mydate > DATE(DATE_sub(NOW(), INTERVAL 45 MINUTE)) 
AND tbl.mydate < DATE(DATE_sub(NOW(), INTERVAL 30 MINUTE)); 
+0

Yeap, я тоже это сделаю. Благодаря! @AwokeKnowing и @FilipeSilva! : D – hearmeroar

+0

Вам нужно удалить DATE() из предложения Where, иначе он не делает минутные диапазоны, это просто дни. Я знаю, что это было много лет назад, но я пытался найти, почему это не работает для меня, и может принести пользу другим, используя этот ответ в своем собственном коде – schofs

3

Вы, вероятно, ищете date_sub:

SELECT * FROM YOURTABLE t 
WHERE t.timestamp > date_sub(NOW(), interval 1 hour); 

Для различных интервалов можно изменить 1 час до 5 дней, 5 недель, и т.д.).

Из документации:

DATE_SUB (дата, ИНТЕРВАЛ выражение единица)

дата аргумент указывает дату начала или значения даты и времени. expr - это выражение, указывающее добавленное значение интервала, или вычитается с даты начала. expr - строка; он может начинаться с a «-» для отрицательных интервалов. единица - это ключевое слово, указывающее единицы , в которых выражение должно интерпретироваться.

В следующей таблице показана ожидаемая форма аргумента expr для каждого значения единицы.

unit Value  Expected expr Format 

MICROSECOND MICROSECONDS 
SECOND   SECONDS 
MINUTE   MINUTES 
HOUR   HOURS 
DAY   DAYS 
WEEK   WEEKS 
MONTH   MONTHS 
QUARTER  QUARTERS 
YEAR   YEARS 
+0

Да, это то, что я ищу. Благодаря! : D – hearmeroar

Смежные вопросы