我有表名tblAttend,其中一个名为WorkHrs的列的数据类型为varchar

简单选择查询的结果是

我求和该列的值,并在几秒钟内得到结果,我的查询是

select sum(DATEDIFF(SECOND, '0:00:00', WorkHrs ))
from tblAttend

它显示以下输出:

现在的问题是,当WorkHrs的总和大于24小时时,将引发错误:

您有什么建议可以解决这个问题?提前致谢

最佳答案

尝试通过将时间转换为字符串,然后乘以与每个部分相关的秒数,将每个时间分成其组成部分。

数据转换为整数是隐式的

select Sum(Left(WorkHrs,2) * 3600 + substring(WorkHrs, 4,2) * 60 + substring(WorkHrs, 7,2))
from tblAttend

10-07 14:34
查看更多