如何求SQL时间差之和,就是多条记录,开始时间和结束时间的和的累积
用来计算工时的,如下:
表a,有字段:ID,填写日期,开始时间,结束时间
值如下:
1 2014-12-22 10:10:00 09:01 10:05
2 2014-12-22 09:40:00 09:08 09:32
3 2014-12-23 11:10:00 09:43 10:39
4 2014-12-23 14:30:00 14:11 14:25
我做了个存储过程,可以用来计算每一条记录中 开始时间和结束时间的差值:
CREATE PROCEDURE PROC_DealGongShi
(
@starttime datetime,
@endtime datetime
)
AS
BEGIN
--定义小时和分钟
DECLARE @xiaoshi INT
DECLARE @fenzhong int
SET @xiaoshi = DATEDIFF( n , @starttime , @endtime )/60
SET @fenzhong = DATEDIFF( n , @starttime , @endtime )%60
--考虑不跨天数的情况
IF (DATEDIFF( n , @starttime , @endtime )%60>1)
BEGIN
SELECT CONVERT(VARCHAR(10),@xiaoshi) + ':' + CONVERT(VARCHAR(10),@fenzhong) AS '时间'
END
END
单条记录都没问题,我怎么统计多条记录啊?晕了,请各位大大help!
最终要求就是,我选取某一天,那天的工时就计算出来了,按天计算
------解决思路----------------------
SELECT SUM(DATEDIFF(MINUTE,开始时间,结束时间))/60[小时]
,SUM(DATEDIFF(MINUTE,开始时间,结束时间))%60[分钟]
FROM a
WHERE CONVERT(VARCHAR(10),填写日期,120)='2014-12-22'