使用Access 2003
表
PersonID TotalHours
111 12.23.34
111 23.32.23
111 14.32.23
222 00:23:32
222 01:00:00
所以......,
TotalHours数据类型是日期时间
使用查询。
Select Personid, sum (TotalHours) from table group by personid.
显示
Personid TotalHours
111 4.30842592592593
222 7.93241898148148
等......,
我想在Sum(TotalHours)中显示正确的时间格式。喜欢(HH:MM:SS)
预期产出
Personid TotalHours
111 32:44:23
222 23:11:22
所以......,
需要查询帮助。
答案 0 :(得分:1)
正在发生的事情是它总计了时间的数字表示
你可以这样做:
Select Personid, cdate(sum (TotalHours)) as GrandTotal
from table
group by personid.
但是你会得到如下结果:
111 1900-01-01 2:28:10 AM
222 1:23:32 AM
这是因为Personalid 111超过24小时
你真正需要做的是将时间缩短到几秒钟;然后添加它们;然后再将其分解为小时/分钟/秒;我用两个查询做了这个
[time_1 definition]
SELECT time_tab.pid,
Sum(Hour([time]) * 3600
+ Minute([time]) * 60
+ Second([time])) AS time_total
FROM time_tab
GROUP BY time_tab.pid;
[time_2 definition]
SELECT time_1.pid,
Int([time_total]/3600) AS h,
Int(([time_total]-Int([time_total]/3600) * 3600)/60) AS m,
[time_total]
- (Int(([time_total]-Int([time_total]/3600) * 3600)/60)*60
+ (Int([time_total]/3600)*3600)) AS s
FROM time_1
给了我
111 50 28 10
222 1 23 32
OR
[time_2 definition]
SELECT time_1.pid,
Int([time_total]/3600) & ":"
& Int(([time_total]-Int([time_total]/3600) * 3600)/60) & ":"
& [time_total]
- (Int(([time_total]-Int([time_total]/3600) * 3600)/60) * 60
+ (Int([time_total]/3600)*3600)) AS grand_total
FROM time_1
给了我
111 50:28:10
222 1:23:32