|
Расчет времени в запросе | ☑ | ||
---|---|---|---|---|
0
brenli
24.02.22
✎
12:20
|
Всем добра
Решаю задачу по запросам - нужно вычислить время в полете для каждого пассажира, для каждого рейса. Дата отправления хранится в одной таблице БД, время отправления и время прибытие хранится в другой таблице БД. Формат времени 24 ч. Вся соль вопроса в том что время может уходить в следующие сутки. Например ЧасОтправления 12 ч, а время прибытия 2 ч. Как адекватно вычислять разницу во времени? Посоветуйте пжл? У меня есть несколько идей но они какие то очень громоздкие: 1) Описать через условный оператор все возможные варианты когда ЧасОтправления > ЧасПрибытия, ЧасОтправления = 24ч, ЧасОтправления < ЧасПрибытия и т.д. тогда поидее поле дата можно не использовать. 2) К данных поля ДатаОтправления устанавливаем время из другой таблицы путем ДобавитьКДате предварительно извлеченные часы и минуты, и потом путём анализа через условный оператор вычисляем поле ДатаПрибытия со временем, и используем функцию РАЗНОСТЬДАТ(). Как бы вы стали решать такое? |
|||
1
acht
24.02.22
✎
13:05
|
Кому-то было лениво придумывать задачи и он спер их с sql-ex
https://www.sql.ru/forum/1067442/zapros-na-sql-pomogite |
|||
2
Жан Пердежон
24.02.22
✎
13:06
|
на sql-ex что ли задачки решаешь?
|
|||
3
mikecool
24.02.22
✎
13:06
|
а как еще можно решить без РазностьДат()?
|
|||
4
acht
24.02.22
✎
13:06
|
(2) Не, это по просторам тырнета бродит задачник уже на 1С с цельнотянутыми примерами. Искать лень.
|
|||
5
brenli
24.02.22
✎
13:22
|
(3) РазностьДат не прокатывает с ходу так как известна только дата отправления. Что будешь толкать в функцию разность дат?
Дата отправления к примеру 01.04.10 22:10, и известно время прибытия 02:15, а это уже следующий день. |
|||
6
brenli
24.02.22
✎
13:23
|
(2) На тренажере 1с построенном по мотивам sql-ex
|
|||
7
patapum
24.02.22
✎
13:31
|
(5) А почему следующий день? А не через день, например? Если точно на следующий день, то можно сделать.
Для начала надо из времени сконструировать дату+время, исходя из того, что это день сегодняшний. Сделать это используя разность дат (например времени с пустой датой), начало периода и добавить к дате, вполне можно. Дальше смотрим разность дат прилета и вылета, если она положительная, берем ее, если отрицательная, то берем разность дат, только к дате прилета добавляем один день. Условия пишем через выбор. Получится громоздко, но уж как получится. |
|||
8
brenli
24.02.22
✎
13:41
|
(7) Описание из схемы БД - рейсы выполняются ежедневно, а длительность полета любого рейса менее суток;
|
|||
9
brenli
24.02.22
✎
13:43
|
(7) Спасибо
|
|||
10
НЕА123
24.02.22
✎
13:52
|
Прилет-Отлет+Выбор когда Прилет-Отлет < 0 Тогда 24 Иначе 0 конец
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |