更新时间:2023-02-16 16:08:34
试试这个
Try this
DECLARE @TBL TABLE
(RID INT,
CID INT,
NAME VARCHAR(50),
Data VARCHAR(10));
INSERT INTO @TBL
(
RID,
CID,
NAME,
Data
)
SELECT 1, 1, 'Test', '2:15'
UNION ALL
SELECT 1, 1, 'Test', '4:15' UNION ALL
SELECT 2, 1, 'Name', '1:00' UNION ALL
SELECT 2, 1, 'Name', '2:15'
SELECT distinct TMP.RID, T.CID, T.NAME, cast(TMP.TOTAL_HOURS as varchar(10)) + ':' + cast(TMP.TOTAL_MINS as varchar(10))
FROM
(
select RID, Sum(DATEPART(hh, CAST(data as DATETIME))) TOTAL_HOURS, Sum(DATEPART(MI, CAST(data as DATETIME))) TOTAL_MINS
from @TBL
group by RID
) TMP INNER JOIN @TBL T ON TMP.RID = T.RID
如下所示进行如下查询
当值为十进制时,int
Make a query like following below
when Value is decimal,int
select RID, CID, Name, sum(Value) as Value from table_name group by RID, CID, Name
在时间日期时间
at the time datetime
SELECT RID, CID, Name, SUM(DATEDIFF(MINUTE, '0:00:00', convert(time, Value, 8))) as totalTime
FROM table_name
GROUP BY RID, CID, Name
运行此
Run this
create table ##table(id bigint identity(1,1),name varchar(max) ,value varchar(max))
insert into ##table (name,value) values('King','2:15')
insert into ##table (name,value) values('KIng','4:15')
insert into ##table (name,value) values('Fisher','1:00')
insert into ##table (name,value) values('Fisher','2:15')
select *From ##table
查询
Query
select name,convert(time,dateadd(s,SUM(
( DATEPART(hh, value) * 3600 ) +
( DATEPART(mi, value) * 60 ) +
DATEPART(ss, value)),0)) From ##table group by name