• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Запрос...

  • Автор темы Автор темы Guest
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Доброго времени суток! Прошу прощения, что не искал, поднималась ли похожая задача в таблице, но я не спал уже двое суток, а работу нужно сдавать завтра. Помогите, пожалуйста, сделать выборку из таблицы

Важные поля в таблице reis такие:

| id_reis | id_car | date_1 | time_1 | date_2 | time_2 |

date_1 - дата отправления
time_1 - время отправления
date_2 - дата прибытия
time_2 - время прибытия

Не обходимо выбрать те id_car, чьи дата и время отправления находяться в промежутке :date_3, :time_3 и :date_4, :time_4. Задача кажется очень простой, но сижу над ней уже четыре часа. Если интервал дат получается учесть, то интервал времени учесть не хватает таланта.

Для времени решаю так
Код:
select reis.id_car from reis where
((reis.date_1 between '6.07.2007' and '10.07.2007'))or
((reis.date_2 between '6.07.2007' and '10.07.2007'))

Помогите, пожалуйста…

На всякий случай сформулирую конкретный пример : Выбрать из таблицы рейсов те машины, которые будут заняты с 6.07.2007 с 10:25 по 10.07.2007 по 23:55...
 
с этим сложнее ...
ну как идея скастить все значения к TIMESTAMP а потом уж и проверять
типа так: where (date_1 + time_1) between cast('6.07.2007' || '15:33:00' as TIMESTAMP) and ...
-------------ну это не правильный sql, токмо идея
а ваще там наверное функции должны быть подходящие
 
etc, никогда не сталкивался с cast, даже не знаю с чем его едят... Толькочто искал через Гугл, нормального описания не нашел... Вы не могли бы написать как должен выглядеть правильный sql код.

Да... Даже сли не сможете, пожалуйста, отпишитесь что не будете, я просто проверяю тему каждые 10 минут...
 

вот тут наверное найдете
 
Спасибо буду искать описание на русском...
 
etc, спасибо, кажется (тьфу, тьфу, тьфу...) работает... Буду его вставлять, тянуть дальше нету не сил не времени...

Код вроде такой:
Код:
select reis.id_car from reis where
((reis.date_1 + reis.time_1) between cast('6.07.2007 '||'20:01:00' as TIMESTAMP)and cast('10.07.2007 '||'20:00:00' as TIMESTAMP))or
((reis.date_2 + reis.time_2) between cast('6.07.2007 '||'20:01:00' as TIMESTAMP)and cast('10.07.2007 '||'20:00:00' as TIMESTAMP))

Если код неправильный, буду благодарен за критику...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab