分钟超过60分钟的小时和分钟总和

时间:2013-11-26 08:02:58

标签: sql datetime

我有一个查询,但它没有给出正确的答案。我想显示如下这样5小时58分钟+7小时58分钟= 13小时56分钟(答案应该是13.56),但是这下面的查询给出输出13.6 。 请回复我任何其他解决方案。 (Effort1为5小时列,Effort1Minutes为58分钟列,同一Effort2为7小时列,Effort2Minutes为58分钟列。

select SUM(Effort1 + Effort2) + SUM(Effort1Minutes + Effort2Minutes) / 60 + CONVERT(decimal(18,2), (SUM(Effort1Minutes + Effort2Minutes) % 60) / 100.00)
from TimesheetDetails

1 个答案:

答案 0 :(得分:2)

当你拿锤子时,每个问题看起来都像钉子一样。这是一个常见的陷阱,基本上意味着“为每个给定的问题使用正确的工具”。

为什么使用这样的复杂查询来计算时间总和?

  1. 为什么您没有两个TIME列,以后可以使用ADDDATE(d1, d2)添加

  2. 为什么不使用SQL 99标准中定义的TIME INTERVAL数据类型?

  3. 为什么不在几分钟内返回结果,让应用程序将其转换为您选择的格式?

  4. 为什么不单独返回小时和分钟,再次让应用程序处理可能由分钟总和引起的额外小时?

  5. 正如您所看到的,还有很多其他解决方案可以从根本上解决您的问题,同时还可以为您提供更好的数据库设计。请考虑一下,特别是第一名。

相关问题