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

Форум MySQL

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

 

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

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

тема: Сравнение дат Date и Time
 
 автор: Filatov_Aleksey   (02.03.2011 в 18:35)   письмо автору
 
 

Здравствуйте, уважаемые программисты.
Возникла проблема при составлении сложного запроса, а именно необходимо вывести список последних записей пользователя от текущего момента времени с лимитом скажем 3. Дата хранится в двух полях day, time, соответсвенно типы date и Time.
Как вывести записи больше текущего момента времени?
Я написал следующий запрос, но он мне выдаёт только записи за текущий день (если не указываю время):

SELECT diagram_of_job_potient.day, diagram_of_job_potient.time, diagram_of_job_potient.id_spec, Specialization.Name_Specialization from diagram_of_job_potient, Specialization Where diagram_of_job_potient.id_user='".$_SESSION['id_login']['id']."' and Specialization.id=diagram_of_job_potient.id_spec and diagram_of_job_potient.day>='".date("Y-m-d")."' and diagram_of_job_potient.time>='".date ("H:i:s")."' ORDER BY diagram_of_job_potient.day DESC, diagram_of_job_potient.time DESC LIMIT 3

Вот полный код запроса, как следует организовать вывод "будущих" записей от текущего момента времени?

  Ответить  
 
 автор: cheops   (02.03.2011 в 18:52)   письмо автору
 
   для: Filatov_Aleksey   (02.03.2011 в 18:35)
 

Вместо date ("H:i:s") и date("Y-m-d") можно воспользоваться MySQL-функцией NOW() - она сама подставит текущее время в нужном формате. А вообще зачем привязываться к текущему времени? Просто выводите последние 3 записи, отсортировав их по времени при помощи конструкции ORDER BY. Ведь укороченный запрос должен и так выводить то, что вам требуется:
SELECT diagram_of_job_potient.day, diagram_of_job_potient.time, diagram_of_job_potient.id_spec, Specialization.Name_Specialization
FROM diagram_of_job_potient, Specialization
WHERE diagram_of_job_potient.id_user='".$_SESSION['id_login']['id']."' AND
Specialization.id=diagram_of_job_potient.id_spec
ORDER BY diagram_of_job_potient.day DESC, diagram_of_job_potient.time DESC
LIMIT 3

  Ответить  
 
 автор: Trianon   (02.03.2011 в 18:56)   письмо автору
 
   для: Filatov_Aleksey   (02.03.2011 в 18:35)
 

Вас сильно подводит то, что поле DATETIME распиленно пополам.
Если есть возможность оба поля склеить в одно - это стоило бы сделать.

Как вариант, можно применить сравнене списков величин [ WHERE (date1, time1) >= (date2, time2) ],
но в данном случае, это скорее костыль, чем дельное решение.

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

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