Name|| day||ActivityDate ||TimeIn  || TimeOut ||
Ade || 20 || 2013-08-20 || 10:06:09 || 18:21:03 ||
Ade || 21 ||2013-08-27  || 11:00:34 || 18:06:56 ||
Ade || 22 || 2013-08-28 || 09:56:29 || 17:59:56 ||

这是我的问题:
select
tot=sum(DATEDIFF(hh ,TimeIn ,TimeOut )) as TotalHourAndMinute
from report

和错误:
1582-对本机函数的调用中的参数计数不正确
'日期差异'
这是我的数据表。。
我不知道怎样才能像超时那样得到总小时数。。
我在这张表里有很多数据。。不仅仅是这3。。
希望你们清楚。。。
Name|| day||ActivityDate ||TimeIn  || TimeOut   || TotalHourAndMinute
Ade || 20 || 2013-08-20 || 10:00:00 || 18:30:00 ||   8.5
Ade || 21 ||2013-08-27  || 11:00:34 || 18:06:56 ||   7.something
Ade || 22 || 2013-08-28 || 09:56:29 || 17:59:56 ||   7.something

我要这样。。
更新

最佳答案

如果您使用的是MySQL,那么函数的正确格式是:

DATEDIFF(expr1,expr2)

有关DATEDIFFhere的更多信息。而且,MySQL的所有可用时间函数都here
但是,如果要查看两个日期之间的小时数差异,请使用TIME_DIFF
TIMEDIFF(expr1,expr2)

以及关于TIME_DIFFhere的文档。
但严格来说,您应该这样写查询:
SELECT tot = sum(HOUR(TIMEDIFF(TimeIn, TimeOut))) AS TotalHourAndMinute
FROM report

更新:
现在,在更新你的问题之后,我明白你想要什么了。
您需要使用的查询是:
SELECT
      NAME,
      DAY,
      ActivityDate,
      SUM(TIMEDIFF(TimeOut, TimeIn)) as TotalHourAndMinute
FROM REPORT
WHERE (TimeOut IS NOT NULL) AND (TimeIn IS NOT NULL)
GROUP BY NAME, DAY, ActivityDate

关于mysql - 如何获得总时数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18654654/

10-11 02:51