Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выборка значений по времени
 
 автор: boldy   (26.04.2013 в 12:49)   письмо автору
 
 

Добрый день.
Есть спарсенная база событий, в этой базе есть поле time в ней хранятся строки в виде 18:00. Произвести выборку этих событий за определённый промежуток дня, например с 6:00 до 12:00.
Как это осуществить? Помогите пожалуйста!

  Ответить  
 
 автор: Sfinks   (26.04.2013 в 13:29)   письмо автору
 
   для: boldy   (26.04.2013 в 12:49)
 

> есть поле time в ней хранятся строки в виде 18:00
Время должно храниться не в строках, а в поле типа TIME.

А если в строках, то можно выбрать так:
SELECT *
FROM tbl
WHERE cast(`time` as time) BETWEEN '06:00:00' AND '12:00:00'
, но это ненужная нагрузка при каждом запросе.

P.S. И time - не удачное имя столбца, т.к. это зарезервированное слово MySQL

  Ответить  
 
 автор: boldy   (26.04.2013 в 13:43)   письмо автору
 
   для: Sfinks   (26.04.2013 в 13:29)
 

Спасибо, а я решил чуть по другому:
WHERE HOUR(time) >= 6 AND HOUR(time) <= 12

Как лучше сделать?

  Ответить  
 
 автор: Sfinks   (26.04.2013 в 14:06)   письмо автору
 
   для: boldy   (26.04.2013 в 13:43)
 

Это не до 12:00, а до 12:59:59

> Как лучше сделать?
Лучше исправить тип и имя поля:
ALTER TABLE tbl CHANGE `time` `novoe_imya` TIME NOT NULL
тогда будет просто:
SELECT * 
FROM tbl 
WHERE novoe_imya BETWEEN '06:00:00' AND '12:00:00'

  Ответить  
 
 автор: Valick   (26.04.2013 в 17:53)   письмо автору
 
   для: Sfinks   (26.04.2013 в 14:06)
 

а при интервале на двое и более суток?
ну это по большей части вопрос не вам, а автору топика.
___
Это не до 12:00, а до 11:59:59

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования