日期:2014-05-18  浏览次数:20364 次

请教关于日期求和的问题
Sql   Server中的sum     等聚合函数无法对datetime类型的数据使用

现在有一个难题,数据库中存储的时间格式为     小时:分钟,现在需要对这个列进行求和,请教该如何做

例如
数据库中存储

1:20   (表示1小时20分钟)
6:45   (表示6小时45分钟)

我需要获得的值是   他们相加后   8:05   (8小时   5分钟)

这样的实现是不是必须通过自定义函数来完成?
大虾门给个思路就可以了不必具体的代码,代码我自己来想
如果是sql   server内部函数麻烦给出函数名称



------解决方案--------------------
我认为最好写一个函数,先用SUBSTRING 把这个字段分割,把小时和分钟分开,然后小时相加,分钟相加,分钟的总数再除以60转化为小时,最后再合并
------解决方案--------------------
如果列里有N个日期,那比较哪些日期的差值啊?
比较数据是这样的,怎么比较?
2007-04-23 12:10:00
2007-04-23 13:31:00
2007-04-29 19:01:25
2007-05-01 07:55:00
------解决方案--------------------
create table #t(col varchar(10))
insert #t select '1:20 '
insert #t select '6:45 '

select
convert(varchar,convert(int,sum(_hour + _min / 60.0))) + ': ' + right( '0 ' + convert(varchar,sum(convert(int,_min)) % 60),2) [Plus]
from
(
select
substring(col, 0, charindex( ': ',col)) [_hour],
substring(col, charindex( ': ',col) + 1, len(col) - charindex( ': ',col)) [_min]
from #t
) a
/*
Plus
-----------------------------------
8:05
*/
drop table #t