Суммировать длительность звонков

VladIg
Дата: 01.03.2007 13:40:15
В табличке хранится информация о звонках.
Длительность хранится в поле типа date, формата '01.01.2001'+mi:ss, где mi:ss - длительность звонка.
Как в запросе определить суммарную длительность звонков.
select sum(t.cdate-to_date('01.01.2001 00:00:00','dd.mm.rrrr hh24:mi:ss'))  
from тф_звонки
Такой запрос выдает число 21910 для нескольких строк, сумма по которым 36 минут.
Эти цифры как то связаны?
dmidek
Дата: 01.03.2007 13:43:53
Покажите пример данных.
Что у Вас играет роль часов ?
padavan
Дата: 01.03.2007 13:48:30
VladIg
В табличке хранится информация о звонках.
Длительность хранится в поле типа date, формата '01.01.2001'+mi:ss, где mi:ss - длительность звонка.
Как в запросе определить суммарную длительность звонков.
select sum(t.cdate-to_date('01.01.2001 00:00:00','dd.mm.rrrr hh24:mi:ss'))  
from тф_звонки
Такой запрос выдает число 21910 для нескольких строк, сумма по которым 36 минут.
Эти цифры как то связаны?


У вас t.cdate - дата, и вычитаете из нее вы тоже дату. Так, вроде, при вычитании даты из даты как результат должно получиться кол-во дней..... Или я ошибаюсь???
VladIg
Дата: 01.03.2007 13:57:56
Пример данных:
01.01.2001 00:01:00
01.01.2001 00:01:00
01.01.2001 00:02:00
01.01.2001 00:02:00
01.01.2001 00:01:00
01.01.2001 00:11:00
01.01.2001 00:02:00
01.01.2001 00:09:00
01.01.2001 00:02:00
01.01.2001 00:05:00
Что-то про вычитание дат не понял.
VladIg
Дата: 01.03.2007 13:59:49
Всё понял кажется, спасибо за наводку.
Как удалить тему? :)
Eva_2006
Дата: 01.03.2007 14:00:21
Вначале переведите длительность звонков в секунды, используя маску 'sssss', а потом просуммируйте эти поля...

Если я правильно вас поняла.
Бабичев Сергей
Дата: 01.03.2007 14:02:06
VladIg
Пример данных:
01.01.2001 00:01:00
01.01.2001 00:01:00
01.01.2001 00:02:00
01.01.2001 00:02:00
01.01.2001 00:01:00
01.01.2001 00:11:00
01.01.2001 00:02:00
01.01.2001 00:09:00
01.01.2001 00:02:00
01.01.2001 00:05:00
Что-то про вычитание дат не понял.


И собственно в чем проблема?
with 
  tst as 
    (
      select to_date('01.01.2001 00:01:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual union all
      select to_date('01.01.2001 00:01:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual union all
      select to_date('01.01.2001 00:02:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual union all
      select to_date('01.01.2001 00:02:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual union all
      select to_date('01.01.2001 00:01:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual union all
      select to_date('01.01.2001 00:11:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual union all
      select to_date('01.01.2001 00:02:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual union all
      select to_date('01.01.2001 00:09:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual union all
      select to_date('01.01.2001 00:02:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual union all
      select to_date('01.01.2001 00:05:00', 'dd.mm.yyyy hh24:mi:ss') as dt from dual
    )

select sum(dt - to_date('01.01.2001 00:00:00', 'dd.mm.yyyy hh24:mi:ss'))*24*60 as dlit_in_minut
 from tst

Query finished, retrieving results...

DLIT_IN_MINUT
-------------
           36

1 row(s) retrieved
padavan
Дата: 01.03.2007 14:03:11
SQL> select to_date('01.01.2001 00:11:00','dd.mm.rrrr hh24:mi:ss') 
- to_date('01.01.2001 00:01:00','dd.mm.rrrr hh24:mi:ss') as time_int from dual;

  TIME_INT
----------
,006944444

SQL>

Результат явно не минуты....
Бабичев Сергей
Дата: 01.03.2007 14:03:17
VladIg
Как удалить тему? :)
Темы тут не удаляются.
Бабичев Сергей
Дата: 01.03.2007 14:04:22
padavan
SQL> select to_date('01.01.2001 00:11:00','dd.mm.rrrr hh24:mi:ss') 
- to_date('01.01.2001 00:01:00','dd.mm.rrrr hh24:mi:ss') as time_int from dual;

  TIME_INT
----------
,006944444

SQL>

Результат явно не минуты....
Результат разности дат - количество дней.
Нужны минуты, умножай результат на количество минут в сутках (ака 24 * 60)