1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Запрос...

Тема в разделе "Базы данных и администрирование", создана пользователем -, 12 июн 2007.

Статус темы:
Закрыта.
  1. Гость

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

    Важные поля в таблице 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...
     
  2. etc

    etc Гость

    Репутация:
    0
    какая субд? (paradox?)
     
  3. Гость

    Репутация:
    0
    Firebird 2.0, программу пишу на Delphi7
     
  4. etc

    etc Гость

    Репутация:
    0
    с этим сложнее ...
    ну как идея скастить все значения к TIMESTAMP а потом уж и проверять
    типа так: where (date_1 + time_1) between cast('6.07.2007' || '15:33:00' as TIMESTAMP) and ...
    -------------ну это не правильный sql, токмо идея
    а ваще там наверное функции должны быть подходящие
     
  5. Гость

    Репутация:
    0
    etc, никогда не сталкивался с cast, даже не знаю с чем его едят... Толькочто искал через Гугл, нормального описания не нашел... Вы не могли бы написать как должен выглядеть правильный sql код.

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

    etc Гость

    Репутация:
    0
  7. Гость

    Репутация:
    0
    Спасибо буду искать описание на русском...
     
  8. Гость

    Репутация:
    0
    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))
    Если код неправильный, буду благодарен за критику...
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей