Выпуск № 425 от 15.06.2009, 10:35
Администратор рассылки: Victor Pyrlik, Модератор
В рассылке: подписчиков - 590, экспертов - 158
В номере: вопросов - 1, ответов - 1
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 169229: Напишите пожалуйста запрос для Oracle. Поля таблицы: DataVxoda (тип дата-время), DataVyxoda (тип дата-время), Id (целое) Известно конкретное Id. Найти: количество минут проведенных в помещении в течении се...
Вопрос № 169229:
Напишите пожалуйста запрос для Oracle.
Поля таблицы: DataVxoda (тип дата-время), DataVyxoda (тип дата-время), Id (целое)
Известно конкретное Id.
Найти: количество минут проведенных в помещении в течении сегодняшнего дня- (DataVyxoda - DataVxoda) для конкретного Id.
Ограничения: 1. Количество входов и выходов в течении дня - неограничено. 2. Необходимо получать минуты с учетом того что человек возможно еще НЕ вышел, т.е. DataVyxoda is Null. 3.
Записей в таблице много - примерно за месяц, для сотни человек.
Отправлен: 10.06.2009, 10:34
Вопрос задал: LanK, Практикант
Всего ответов: 1 Страница вопроса >>
Отвечает Victor Pyrlik, Модератор :
Здравствуйте, LanK. Можно например так:
Код:
SELECT ID, SUM(ROUND((DataVyxoda - DataVxoda)*1440)) DELTA_TIME FROM MYTABLE WHERE DataVyxoda IS NOT NULL AND TO_DATE(DataVxoda) = TO_DATE(SYSDATE) GROUP BY ID
расчет простой: разность дат без форматирования
возвращает относительный коэффициент, он же является множителем для единицы измерения например: для секунд - 86 400 для минут - 1 440 для часов - 24
величины берутся для суток. таким образом, умножая на коэффициент минуты и округляя, мы получаем целое число минут (это справедливо и для часов и для секунд)
Если надо для всех данных - просто убрать второе условий и для группировки по дням в SELECT добавить TO_DATE(SYSDATE) и это же в гр
уппировку.. Для периода можно использовать BETWEEN Россия, Екатеринбург Тел.: 89043822027 ICQ # 490191733
----- Жизнь игрушка – пока играешь сам..
Ответ отправил: Victor Pyrlik, Модератор
Ответ отправлен: 11.06.2009, 23:04
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 250857
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.