![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
dm9 |
|
||||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Есть столбец с типом DATETIME или TIMESTAMP(14).
Надо найти все строки, в которых данная отметка времени - не ранее, чем за 12 минут до NOW(). Под 4.0.25 всё прекрасно работало таким образом:
и таким тоже
Под 4.1.14 это не работает. Вопрос - как же правильно найти расстояние между датами. Хранить дату как int - не предлагать. |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
SubTime, TimeDiff... мануалы-то читаем?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Akina, а можно мне, как ОЧЕНЬ большому тормозу, примерчик на тему
? Это сообщение отредактировал(а) dm9 - 27.12.2005, 17:24 |
|||
|
||||
Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
Попробуй так
`lastrequest` - это же поле для хранения времени у тебя? ЗЫ У меня на MySQL 4.1.8 работает. |
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
Если PHP то ябы сделал:
Ну и потом
|
||||
|
|||||
Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
А лучше так сделать
доплнительно можно посмотреть на сайте MYSQL Это сообщение отредактировал(а) Illuminaty - 28.12.2005, 00:49 |
|||
|
||||
Illuminaty |
|
||||||||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
sergej.z, при всем уважении, но этот код не то что надо
|
||||||||
|
|||||||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
Да я уже иправил. Неправильно прочитал условие, показалось 12 сек.
|
|||
|
||||
dm9 |
|
||||||||||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Тестируем.
Первый вариант.
Путь будет не NOW(), а другой столбец. Назовём его r9.
r9 = '2006-12-27 16:00:00' lastrequest = '2006-12-27 15:59:57' result = '-59' Далеко от требуемого результата, не так ли? Второй вариант.
r9 = '2006-12-27 16:00:00' lastrequest = '2006-12-27 15:59:57' result = '40'
Сергей, очень хотелось бы сделать это средствами СУБД. Иначе получается некрасиво как-то. Но пусть даже будет так. Что возвращает time()? Он возвращает не TIMESTAMP, он возвращает число секунд от начала эпохи. А TIMESTAMP - это число в формате 20051228000000 - то есть это не секунды. Твой код работать не будет тоже. Это сообщение отредактировал(а) dm9 - 28.12.2005, 12:40 |
||||||||||
|
|||||||||||
Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
попробуй так
а в предыдущих ответах я свою ошибку понял ![]() |
|||
|
||||
dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: нет Всего: 137 |
Хм. Да, это будет работать для фиксированного числа минут/секунд, спасибо.
Но что, если эти "12 минут" у меня хранятся в другом столбце БД в формате '0000-00-00 00:12:00'? Насколько я понял, ADDDATE() такого не поддерживает. Это вообще возможно под MySQL 4.1? Под 4.0.25 всё работало ![]() Добавлено @ 14:36 Я, кажется, понял. Формат `0000-00-00 00:12:00` считается некорректным. "12 минут" буду хранить в БД как строковое поле interv в формате 'DAYS HOURS:MINUTES', а затем делать так: WHERE DATE_ADD(lastrequest, INTERVAL interv DAY_MINUTE) > r9 Наверное, это решение задачи. Это сообщение отредактировал(а) dm9 - 28.12.2005, 14:38 |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |