请教关于日期求和的问题
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