Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как получить следующий список машин?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
alexiy
Отправлено: 19 Февраля, 2012 - 13:37:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 483
Дата рег-ции: Янв. 2011  


Помог: 6 раз(а)




у меня есть 2 таблицы
1) cars (id, car)
2) order(car, firstdate, seconddate)
как получить все свободные машины например на период с 12/02/2012 - 14/02/2012?
сам пробовал что-то вроде
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT cars FROM cars LEFT JOIN ORDER ON cars.car = ORDER.car WHERE ORDER.firstdate <'12/02/2012' OR ORDER.seconddate > '14/02/2012';
  3.  

но толку от такога запроса ноль
прошу помочь
 
 Top
OrmaJever
Отправлено: 19 Февраля, 2012 - 14:04:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




во-первых вам не кажется что подсветка синтаксиса на форуме подсказывает что ORDER ключевое слово, а у вас это название таблицы и поэтому должно братся в обратные кавычки (`).
во-вторых можно использовать функцию unix_timestamp(), например так
CODE (SQL):
скопировать код в буфер обмена
  1. unix_timestamp('12-02-2012')

Надо только проверит ьв каком формате дату писать


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
alexiy
Отправлено: 19 Февраля, 2012 - 14:17:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 483
Дата рег-ции: Янв. 2011  


Помог: 6 раз(а)




OrmaJeverнасчет Order согласен, но его использовал для наглядности. а вот timestamp не понял, как его использовать именно в запросе?
 
 Top
OrmaJever
Отправлено: 19 Февраля, 2012 - 14:52:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




возвращает метку времени от начала эпохи юникс в секундах, тоесть обычное 32 битное число, а числа сравнивать намного проще.
CODE (SQL):
скопировать код в буфер обмена
  1. unix_timestamp(`ORDER`.`firstdate`) < unix_timestamp('12-02-2012')

ну и после or так же. Предпологается что поле firstdate имеет формат timestamp (незнаю как эта функция работает с другими полями)


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB