如何从日期时间获得平均分钟数?

时间:2013-10-11 15:45:53

标签: sql sql-server sql-server-2008 datetime

我想要做的是显示技术人员对每张机票的平均分钟数,但仅限于平均值大于或等于每张机票的总平均分钟数的情况。但你不能在日期时间使用avg。

我知道这是错误的,但这就是我的开始:

select user_firstname + ' ' + user_lastname as technician_name, 
avg(ticket_requestdate - ticket_closeddate) as average_minutes_per_ticket
from hd_users
    join hd_tickets on ticket_requestor_id=user_id
where user_is_technician = '1' 
having avg(ticket_requestdate - ticket_closeddate) >=
        (select avg(ticket_requestdate - ticket_closeddate) from hd_users)

1 个答案:

答案 0 :(得分:2)

我会在子查询中使用datediff()和分钟

datediff(minute,datestart,dateend)

然后你得到分钟数作为int然后你可以做avg()

avg(datediff(minute,datestart,dateend))

----编辑---- 我猜有点因为我不知道你的表格结构,但是这个怎么样呢

select user_firstname + ' ' + user_lastname as technician_name, 
avg(Datediff(minute,ticket_requestdate,ticket_closeddate)) as average_minutes_per_ticket
from hd_users
join hd_tickets on ticket_requestor_id=user_id
where user_is_technician = '1' 
GROUP BY user_firstname, user_lastname 
having avg(Datediff(minute,ticket_requestdate,ticket_closeddate)) >=
    (select avg(Datediff(minute,ticket_requestdate,ticket_closeddate)) from hd_users)