0

我有一个表(生产),它有一个名为 TimeSpent 的列,该列的数据类型是 varchar,它以 HH:MM 格式存储数据,例如 10:23,14:59,11:00 等。我想写sql 中的一个查询将对此求和,并仅以 HH:MM 格式给我一个总数。我尝试了这样的事情,但收到错误“从字符串转换日期和/或时间时转换失败。”:-

select CAST
(
(SUM (datepart(hh, convert (varchar, timespent, 108))) +
(sum(datepart(mi, convert (varchar, timespent, 108)))/60) ) AS VARCHAR(2)
)
+ ':' +
CAST
(
sum(datepart(mi, convert (varchar, timespent, 108))) - 60 * (sum(datepart(mi, convert (varchar, timespent, 108)))/60)
 as VARCHAR(2)) from production
4

1 回答 1

0

查询对我有用,我刚刚更新了我的表并将 TimeSpent 的大小从 varchar(60) 减小到 Varchar(25) 并且它是固定的。

select CAST
(
(SUM (datepart(hh, convert (varchar, timespent, 108))) +
(sum(datepart(mi, convert (varchar, timespent, 108)))/60) ) AS VARCHAR(2)
)
+ ':' +
CAST
(
sum(datepart(mi, convert (varchar, timespent, 108))) - 60 * (sum(datepart(mi, convert (varchar, timespent, 108)))/60)
 as VARCHAR(2))from production
于 2012-07-16T08:38:27.253 回答