我有一个表(生产),其中有一个名为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
答案 0 :(得分:0)
查询对我有用,我刚刚更新了我的表,并从varchar(60)将TimeSpent的大小减小为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