sql - 如何转换 hh :mm:ss to seconds in SQL Server with more than 24 hours

标签 sql sql-server sql-server-2008

我有表名 tblAttend其中一列名为 WorkHrs是数据类型 varchar .

简单选择查询的结果是

enter image description here

我总结了这个列的值并在几秒钟内得到结果我的查询是

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

它显示了这个输出:

enter image description here

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

enter image description here

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

最佳答案

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

数据转换为整数是隐式的

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

关于sql - 如何转换 hh :mm:ss to seconds in SQL Server with more than 24 hours,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31425204/

相关文章:

sql - 多个 has_many 关系 Rails SQL 查询

php - 仅当两个条件都满足时才在单个 sql 语句中选择两行

php - 在 MSSQL 上获取日期时间

PHP 和 SQL : Query for a name using join

mysql - 使用Where和左连接获取空值

sql - 没有自连接的 sql 行的最新实例

sql-server - 如何更新主键

sql - 按特定列的总和等于特定值对行进行分组

sql server 2008 如何断开每个人与我的数据库的连接?

sql-server-2008 - sql server 2008如何计算一年中的天数