访问时间的SQL时间格式小时

时间:2014-09-04 01:11:24

标签: ms-access time formatting

我想在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;

有人可以帮忙吗?

2 个答案:

答案 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访问中也有更好的构建方式。