Waq*_*qas 2 sql sql-server sql-server-2008
我有一个表名tblAttend,其中一列名为WorkHrsdatatype varchar.
简单选择查询的结果是

我总结了这个列的值,并在几秒钟内得到了我的查询结果
select sum(DATEDIFF(SECOND, '0:00:00', WorkHrs ))
from tblAttend
Run Code Online (Sandbox Code Playgroud)
它显示了这个输出:

现在的问题是,当总和WorkHrs大于24小时时,它会抛出一个错误:

你有什么建议可以解决这个问题?提前致谢
尝试:
DECLARE @DURATION TIME = '01:43:24'
SELECT DATEDIFF(SECOND, '1/1/1900', CONVERT(DATETIME, @DURATION))
Run Code Online (Sandbox Code Playgroud)
通过将时间转换为字符串,然后乘以与每个部分相关的秒数,尝试将每次分成其组成部分.
数据转换为整数是隐式的
select Sum(Left(WorkHrs,2) * 3600 + substring(WorkHrs, 4,2) * 60 + substring(WorkHrs, 7,2))
from tblAttend
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20037 次 |
| 最近记录: |