Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос со сдвигом во времени. / 9 сообщений из 9, страница 1 из 1
02.07.2014, 13:27:52
    #38685707
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос со сдвигом во времени.
Привет всем,

Не очень точно написал тему, но идея такая.
У меня есть запрос в БД:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT  `description` AS  'Task', DATE_FORMAT( current_date,  '%d %b %y' ) AS  'Current date',  `start_time` AS  'Time'
FROM tasks
WHERE  `code` LIKE  'once'
AND  `start_date` = current_date
AND  `start_time` > current_time
AND  `exp_day` >= current_date
ORDER BY  `start_time`



Все просто, проверили параметры и выдали результат. Но... у меня обычная вэб страница, которая обнавляется каждые 60 секунд и выдает результат запроса на экран. Таблица такого плана:


В таблице есть колонка start_time - это конкретное время. Нужно переделать запрос, что бы задание открывалось в окне за 15 минут до начала и доставалось до тех пор пока его не удолят. Кручу и так и так.. не получается.
...
Рейтинг: 0 / 0
02.07.2014, 13:34:46
    #38685717
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос со сдвигом во времени.
Mc Docза 15 минут до начала
Mc Doc
Код: sql
1.
AND  `start_time` > date_add(current_time, interval -15 minutes)
...
Рейтинг: 0 / 0
02.07.2014, 13:41:12
    #38685726
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос со сдвигом во времени.
tanglir,

Немного ругается (((
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT  `description` AS  'Task', DATE_FORMAT( current_date,  '%d %b %y' ) AS  'Current date',  `start_time` AS  'Time'
FROM tasks
WHERE  `code` LIKE  'once'
AND  `start_date` = current_date
AND  `start_time` > date_add(current_time, interval - 15 minutes)
AND  `exp_day` >= current_date
ORDER BY  `start_time`



#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'minutes) AND `exp_day` >= current_date ORDER BY `start_time` LIMIT 0, 30' at line 5

Я думал использовать немного иначе, чуть по другому:

Код: sql
1.
AND  `start_time` > (current_time, interval - 15 %i)
...
Рейтинг: 0 / 0
02.07.2014, 13:47:23
    #38685734
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос со сдвигом во времени.
Код: sql
1.
interval -15 minute

буква s на конце не нужна
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add
...
Рейтинг: 0 / 0
02.07.2014, 13:58:56
    #38685752
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос со сдвигом во времени.
miksoft,
Что то упустили....
Смотрте.


Время 10:56

С первой записью согласен. За 15 минут до начала. А вот вторая и последущие влезли не по теме.
...
Рейтинг: 0 / 0
02.07.2014, 14:18:18
    #38685787
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос со сдвигом во времени.
Смотрите, время 11-13
Задача которая должна быть в 11 живет в таблице - нормально.



Вот время 11-15 - так как я не удолял задач из таблицы, она должна оставаться там. Но ее нет

...
Рейтинг: 0 / 0
02.07.2014, 14:28:53
    #38685804
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос со сдвигом во времени.
Mc DocС первой записью согласен. За 15 минут до начала. А вот вторая и последущие влезли не по теме.Так написано условие "больше", вот оно и выполняется как "больше".
Если не годится, то добавьте еще второй конец диапазона.
...
Рейтинг: 0 / 0
02.07.2014, 14:39:08
    #38685815
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос со сдвигом во времени.
Мне кажется вот так должно быть

Код: plsql
1.
AND  `start_time` > date_add(current_time, interval - 15 minutes)



Сменил знак, в запросе то что надо. Сейчас накидаю записей и сделаю тест, как появляются на экране.
...
Рейтинг: 0 / 0
02.07.2014, 14:58:23
    #38685843
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос со сдвигом во времени.
tanglir,
miksoft,

Спасибо за подсказку, все работает - те записи появляются за 15 минут до начала.
Код:

Код: sql
1.
AND  `start_time` < date_add(current_time, interval + 15 minutes) 
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос со сдвигом во времени. / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]