使用SQL Server 2005
表1
ID Time
001 060000 (HHMMSS)
001 080000
002 100000
002 090000
002 120000
.....
Intime,Outtime数据类型为varchar。
我想按ID
计算总时间组如何计算总小时数。
需要查询帮助
答案 0 :(得分:4)
根据数据给出,最后扔掉0000,改为int,SUM
SELECT
SUM(CAST(REVERSE(SUBSTRING(REVERSE(TimeCol),5,8000) as int), ID
FROM
MyTable
GROUP BY
ID
如果您有分钟但没有秒数,您可以修改它以在结尾处丢弃00,分成小时+分钟并总结...
问题是:
答案 1 :(得分:2)
如果您将这些数据存储为几分钟(或者如果您真的需要那么详细的数据,则可以将这些数据存储在批次中)。
因此,我怀疑你需要在添加它们之前将所有数据标准化为几分钟等,因为我不相信你能以这种方式有意义地对时间字段求和。
在http://www.dbforums.com/microsoft-sql-server/1113948-sum-time-sql-server.html上讨论了各种变通方法 - 所有这些变通方法在尝试对它求和之前都会转换时间字段。