Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何计算总小时数?_Mysql - Fatal编程技术网

Mysql 如何计算总小时数?

Mysql 如何计算总小时数?,mysql,Mysql,这是我的疑问: 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 || 和错误: 1582-调用本机函数时参数计数不正确 “DATEDIFF” 这是我

这是我的疑问:

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 ||
和错误:

1582-调用本机函数时参数计数不正确 “DATEDIFF”

这是我的数据表。。 我不知道如何得到总小时数,比如超时时间

仅供参考,我在这张表中有很多数据。。不仅是这个

我希望你们清楚

select 
tot=sum(DATEDIFF(hh ,TimeIn ,TimeOut )) as TotalHourAndMinute
from report
我希望是这样的


更新

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

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
有关
DATEDIFF
的更多信息。此外,MySQL的所有可用时间函数都是

但是,如果您想查看两个日期之间的小时差异,请使用
TIME\u DIFF

DATEDIFF(expr1,expr2)
和有关时间差异的文档

但严格按照您的情况,您应该这样编写查询:

TIMEDIFF(expr1,expr2)
更新:

现在,在更新你的问题后,我明白你想要什么了

您需要使用的查询如下:

SELECT tot = sum(HOUR(TIMEDIFF(TimeIn, TimeOut))) AS TotalHourAndMinute
FROM report
使用:


有关更多信息,请访问网站。

如果您聚合时间值,您将以秒为单位得到一个结果,将其转换回您调用的时间。这将为您提供:

SELECT HOUR(TIMEDIFF(TimeOut,TimeIn)) AS hour from report;

您正在使用哪个数据库引擎?phpmyadmin,希望您可以try@user2514863那么我假设你正在使用MySQL,对吗?对不起,老板。。我还是新手。。当我提出这个问题时,错误出现了。。。“字段列表”@user2514863
tot
中的未知列“tot”应该是您之前声明的数字变量。但如果您不想将输出存储在变量中,只需使用
选择sum(HOUR(TIMEDIFF(TimeIn,TimeOut)))作为TotalHourAndMinute FROM report
选择sum(HOUR(TIMEDIFF(TimeIn,TimeOut)))作为TotalHourAndMinute FROM report以获取所有记录的totalhour..column sum(HOUR(DATEDIFF(TimeIn,TimeOut)))只需输出NULL或0即可。。简单的数学,hour=TimeOut-TimeIn,例如:TimeIn=08:00:00 TimeOut=17:30:00所以hour=9.5,但我不能简单地减去,因为时间1分钟=60秒,@user2514863我已经切换了超时和TimeIn的顺序。现在试着运行它。对不起,老板。。我需要15分钟的时间(
SELECT HOUR(TIMEDIFF(TimeOut,TimeIn)) AS hour from report;
SELECT
    SEC_TO_TIME(SUM(TIMEDIFF(TimeOut, TimeIn))) AS TotalHourAndMinute
FROM
    report