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

Форум MySQL

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

 

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

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

тема: Все товары и цены для него, которые действуют на текущий момент
 
 автор: Николай   (27.02.2012 в 00:17)   письмо автору
 
 

Добрый день! Помогите составить запрос.
Есть таблица в MySQL БД, структура такая
id
tovar_id - товар
cena - цена
date - дата начала действия цены
time - время начала действия цены
Называются столбцы по другому ессно, но не суть.
Суть проблемы
В таблицу забиваются цены на товар, много наименований. Цены могут меняться в течение дня, могут выставляться наперед. Так вот суть в том, чтобы выбрать запросом все товары ицены для него, которые действуют на текущий момент
допустим сейчас 25.06.2011 15.30.00
Телефон ZTE 800р 25.06.2011 08.00.00
Телефон ZTE 1000р 25.06.2011 15.00.00
Телефон ZTE 1100р 25.06.2011 20.00.00
Телефон Sams 2300р 25.06.2011 00.00.00
Телефон Sams 2400р 25.06.2011 15.00.00
Телефон Sams 2200р 25.06.2011 00.00.00
Т.е. должны выбраться строки, выделенные жирным
Помогите, плыз!

  Ответить  
 
 автор: cheops   (27.02.2012 в 00:43)   письмо автору
 
   для: Николай   (27.02.2012 в 00:17)
 

Столбцы date и time в каком формате? Так как они раздельны, подозреваю, что это строки? Лучше бы их объединить в рамках одного столбца с типом DATETIME - ваша жизнь сильно упростится, тогда вы сможете задействовать текущее время и задать интервал, например, текущие сутки или текущее время плюс/минус один час. Все это можно делать штатными средствами СУБД. Со строками просто, конечно, тоже можно, но будет громоздко, возможно с ошибками и крайне не эффективно по скорости.

  Ответить  
 
 автор: Николай   (27.02.2012 в 09:50)   письмо автору
 
   для: cheops   (27.02.2012 в 00:43)
 

Стобец date Ymd - 20110108
столбец time His - 183000
Да, это строки.
НУ допустим, что текущее время я определяю в PHP date("Ymd") и время date("His"), хотя может через MySQL непосредственно будет правильнее.

НО какой будет запрос к БД я просто не представляю :(

  Ответить  
 
 автор: cheops   (27.02.2012 в 12:00)   письмо автору
 
   для: Николай   (27.02.2012 в 09:50)
 

Переведите столбцы в один столбец DATETIME и проблема решится автоматически. Или если не хотите, озаботьтесь получением времени DATETIME из столбцов date и time.

>НУ допустим, что текущее время я определяю в PHP date("Ymd") и время date("His"), хотя может
>через MySQL непосредственно будет правильнее.
Если ставите на PHP там и вычисляйте условие. Если вы хотите переместить условие в MySQL, следует задать дату в MySQL-формате. Почему собственно не date("Y-m-d H:i:s") с которым можно задействовать всю мощь поддержки календарных типов MySQL?

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

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