sql - 如何计算总小时数

标签 sql sql-server

使用 SQL Server 2005

表1

ID Time 

001  060000 (HHMMSS)
001  080000
002  100000 
002  090000 
002  120000
.....

Intime、Outtime 数据类型为 varchar。

我想通过id计算组的总时间

如何计算总小时数。

需要查询帮助

最佳答案

根据给定的数据,去掉末尾的0000,改为int,SUM

SELECT
    SUM(CAST(REVERSE(SUBSTRING(REVERSE(TimeCol),5,8000) as int), ID
FROM
    MyTable
GROUP BY
    ID

如果你有分钟但没有秒,你可以修改它以在末尾丢弃 00,分成小时 + 分钟并求和...

问题是:

  • 将 HHMMSS 字符串分解为单独的 HH、MM 和 SS
  • 然后找到一个通用单位(例如整秒,但我查看了数据,所以选择了整小时)
  • 求和得到总的公共(public)单位
  • 更改为所需的输出单位(本例中为小时)

关于sql - 如何计算总小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4574099/

相关文章:

SQL Server 使用子查询从行到列

sql - 如何引用 PostgreSQL 表中的特定行?

sql-server - 如何在Sql服务器中转义 "&"符号

c# - EF 6.0 多对多插入这么多编码......为什么?

SQL - 仅显示具有最新日期的行

python - Django 不级联删除

mysql - MySQL修剪或使用子字符串定位获取特定的字符串集

sql - 如何意外删除表中的所有行

SQL Server错误: Primary file group is full

sql - 如何在 SQL Server 中给定列的末尾追加字符串?