Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

_Ayl_
Статус: 5-й класс
Рейтинг: 351
∙ повысить рейтинг >>
Victor Pyrlik
Статус: Модератор
Рейтинг: 336
∙ повысить рейтинг >>
Hubbitus
Статус: 10-й класс
Рейтинг: 157
∙ повысить рейтинг >>

∙ / КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 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 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!



    Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
    оценить выпуск >>

    подать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.1 RC от 10.06.2009

    В избранное