sql - 在 SQL Server 中,要转换具有此格式的 varchar (nnn :nn:nn)

标签 sql sql-server database

我有这种 varchar 格式作为时间累积,我想将其转换为整数以进行求和并获取一组的总时间。第一部分可以是 1、2、3、4 甚至 5 位数字,代表小时的累积,然后用冒号分隔。然后是第二部分,即分钟的累积和秒的最后累积(各 2 位数字)。如果可能的话,如何在一个查询中将其转换为整数。

最佳答案

您可以使用此查询来检索跨度的长度(以秒为单位):

select sum(
    60*60*cast(left(span, len(span)-6) as int)
+   60*cast(substring(span, len(span)-4, 2) as int)
+   cast(right(span, 2) as int))
from test

这个想法是把左边、右边和中间的部分切掉,乘以一小时的秒数和一分钟的秒数,然后将三个部分相加。

这里是 sqlfiddle 的链接.

关于sql - 在 SQL Server 中,要转换具有此格式的 varchar (nnn :nn:nn),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12681481/

相关文章:

mysql - 许多单独的查询 v. 一个大的查询

mysql - 设计卖家、类别和产品表的最佳方法是什么?

sql - 如何将存储过程的文本放入 SQL Server 2000 中的单个记录中?

php - 使用连接表更新

sql - 如何在 JPA/Hibernate 中执行 native SQL 脚本?

php - mysql 选择多表 - 连接

sql-server - 计算 SQL Server 2008 中的回滚次数

php - 使用 PHP 向数据库插入数组元素的语法

sql - NOT IN 子句中的 NULL 值

c# - 在 Visual Studio 中使用来自 SQL Server 的数据库