我想在Access中创建一个查询,总结每个项目的总时间。
我有一个看起来像这样的数据库:
Time | Project
------------------
1:00 | 1455
2:30 | 1666
0.50 | 1455
0.45 | 1455
我想知道所有项目都花了多少小时。
到目前为止,我已经创建了一个返回每个项目总小时数的查询,这很好。
但是,时间的格式是奇数。例如,应该返回17:10小时的项目返回此0.715277777777778
我正在尝试格式化字段时间,以便总返回正常的格式,如17:10小时,而不是所有小数。
这是我现在拥有的SQL
SELECT Sum(Dan.Time) AS SumOfTime, Dan.Project
FROM Dan
GROUP BY Dan.Project
ORDER BY Dan.Project;
有人可以帮忙吗?
答案 0 :(得分:1)
您可以使用格式化功能:
Format(Sum(Dan.Time),"hh:nn") AS SumOfTime
P.S。 ms中的DateTime
实际上是double
,其中1是一天,而1/24是一小时,依此类推。
答案 1 :(得分:0)
我不使用ms访问权限,但这可能会对你有帮助。
所有时间都应保存在同一类型中。也许你应该在将它们存储在数据库中之前格式化时间。
如果无法做到,可以试试这个
SELECT
Int(Sum(Dan.Time) * 24) & ":" & (Int((Sum(Dan.Time) * 24 - Int(Sum(Dan.Time) * 24)) * 60) + 1)
AS TimeStr,
Dan.Project
FROM
Dan
GROUP BY
Dan.Project
ORDER BY
Dan.Project;
它从十进制数中计算小时和分钟,并将数字连接为HH:MM
。
也许在ms访问中也有更好的构建方式。