table1有以下两个字段:
datetime_begin (date类型) (年月天时分秒)
datetime_end (date类型) (年月天时分秒)我要做的就是:
sum(datetime_end - datetime_begin) / count(*)但是这样会有问题么?
相加之后,表现为“年月天时分秒”么?这样再求平均值行么?
datetime_begin (date类型) (年月天时分秒)
datetime_end (date类型) (年月天时分秒)我要做的就是:
sum(datetime_end - datetime_begin) / count(*)但是这样会有问题么?
相加之后,表现为“年月天时分秒”么?这样再求平均值行么?
day to_number(datetime_end - datetime_begin)
hour to_number(datetime_end - datetime_begin)*24
minute to_number(datetime_end - datetime_begin)*24*60
......
avg(datetime_end - datetime_begin)
hour to_number(datetime_end - datetime_begin)*24
minute to_number(datetime_end - datetime_begin)*24*60 avg(datetime_end - datetime_begin)......
/* 3 接通排队等待均长基本语句 */
select count(*) into waitNUM
from tbilllog7
where CALLTYPE=0 OR CALLTYPE=5 OR CALLTYPE=13
and
DEVICETYPE = 3
and
WAITEND-WAITBEGIN>=0
and
(WAITBEGIN between '2009-7-1 00:00:00' and '2009-7-2 00:00:00');
dbms_output.put_line('waitNUM: '|| waitNUM);
select avg(WAITEND-WAITBEGIN) into waitavgTIME
from tbilllog7
where CALLTYPE=0 OR CALLTYPE=5 OR CALLTYPE=13
and
DEVICETYPE = 3
and
WAITEND-WAITBEGIN>=0
and
(WAITBEGIN between '2009-7-1 00:00:00' and '2009-7-2 00:00:00');
dbms_output.put_line('waitavgTIME: '|| waitavgTIME);
waitNUM: 3544208
waitavgTIME: .0000851878340034720811469805885483520397756
PL/SQL procedure successfully completed.
上面就是用avg()求出的时间,咋看哟
你可以换算成秒啊
waitavgTIME:=waitavgTIME*24*60*60;
想转换成年月天时分秒,得自己写个函数
这么实现应该很简单就能写出来。问题是,月份有的是30天,有的31天,还有28、29天
你可以写成 天 时 分 秒
如果对datetime_end - datetime_begin进行转换,就无法进行平均值计算
avg(datetime_end - datetime_begin)
想得到小时 avg(datetime_end - datetime_begin)*24
想得秒 avg(datetime_end - datetime_begin)*24*3600 oracle中日期相减都是得到的数值时某天
datetime_end (date类型) (年月天时分秒) 这两个字段的值可是‘年月天时分秒’avg(datetime_end - datetime_begin) 得到的是天?
没错。日期相减会等于天数,Number型
相加会出错
那么这个天数,就是所有时分秒的和转换成的天数么?
waitNUM: 3544208
waitavgTIME: .0000851878340034720811469805885483520397756
PL/SQL procedure successfully completed.原来‘waitavgTIME: ’值有个小数点。我说怎么那么样的数字呢。thx all~