Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как выбрать запись по диапазону времени, datetime 
:(
    Опции темы
zluka
Дата 1.3.2010, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



Есть две даты дата начала футбольного матча и конец дня (этого матча):
То есть:
Код

Дата матча: 01.03.2010 16:00:00
Конец дня это: 01.03.2010 23:59:59

Так вот мне и нужно выбрать эту запись (матч) с таблицы.

Прошу помощи.
Дата в таблице храниться как gamedate(datetime)

P.S. СУБД: MySQL
Спасибо.


--------------------
user posted image
PM MAIL   Вверх
Akina
Дата 1.3.2010, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Код

Where `нужнаяДата` Between (НачалоПериода) And (КонецПериода)



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
zluka
Дата 1.3.2010, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



Спасибо. Но немного не то. Выбираться должна запись только когда начнеться матч. То есть только начиная с 16:00:00
Если так написать:
Код

SELECT * FROM `games` WHERE `gamedate` BETWEEN '2010-03-01 16:00:00' AND '2010-03-01 23:59:59'

Выводит запись, это если допустить, что сейчас например 15:00:00


--------------------
user posted image
PM MAIL   Вверх
Akina
Дата 1.3.2010, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Начало периода == начало матча. Неужели это недоступно пониманию?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Deniz
Дата 2.3.2010, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 6
Всего: 44



zluka, тебе время отсечь нужно?


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
zluka
Дата 2.3.2010, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



Цитата(Akina @  1.3.2010,  21:44 Найти цитируемый пост)
Начало периода == начало матча. Неужели это недоступно пониманию? 

Вы немного не поняли.


Цитата(Deniz @  2.3.2010,  15:20 Найти цитируемый пост)
zluka, тебе время отсечь нужно? 

Нет.

Объясню еще раз. Есть даты:
Код

Дата матча: 01.03.2010 16:00:00
Конец дня матча: 01.03.2010 23:59:59
Сейчас дата/время: 01.03.2010 15:00:00

Мне нужно вставить в запрос текущую дата/время, припустим это - 01.03.2010 15:00:00, и проверить не начался ли матч. В данном случае, сейчас как я уже говорил 15:00:00, то есть матч не начался (до этого показуется обратный отсчет: осталось 1 час 00 минут 00 секунд до матча). Поэтому запись с БД не должна выводиться. Как только часы станут 16:00:00, должна вывестись запись, и быть "активной" с 16:00:00 до 23:59:59 
Вот поэтому такой запрос не то что мне нужно:
Код

SELECT * FROM `games` WHERE `gamedate` BETWEEN '2010-03-01 15:00:00' AND '2010-03-01 23:59:59'



--------------------
user posted image
PM MAIL   Вверх
Akina
Дата 2.3.2010, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



 smile 
Код

Where `Current Datetime` 
Between `Game Start`
And `End Of Day`




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
zluka
Дата 2.3.2010, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 27.7.2006

Репутация: нет
Всего: 2



Выводит кучу других дат (игр):
Вот полный запрос:
Код

SELECT * FROM `games` WHERE '2010-03-01 17:00:00' BETWEEN  '2010-03-01 16:00:00' AND '2010-03-01 23:59:59' AND (`team1` = 1 OR `team2` = 1) AND `season_id` = 26



--------------------
user posted image
PM MAIL   Вверх
Akina
Дата 2.3.2010, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



А почему у тебя в запросе не поля таблиц, а литералы???


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0821 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.