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)
有关
DATEDIFF
,here的更多信息。而且,MySQL的所有可用时间函数都here。但是,如果要查看两个日期之间的小时数差异,请使用
TIME_DIFF
。TIMEDIFF(expr1,expr2)
以及关于
TIME_DIFF
here的文档。但严格来说,您应该这样写查询:
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/