Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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,在这种语法中,它只确定员工的第一个输入和最后一个输出,但是 我想问一下,我如何计算员工的第一次入职和最后一次出职之间的时差或总时间 例如,员工的第一个上班时间是上午9:00:00,最后一个下班时间是下午16:00:00。如何计算该员工的总工时?请尝试以下操作: SELECT empno , date_created , min(CASE WHEN status = 0 THEN time_created END) time_in, max(CASE WHEN status = 1 THEN t

在这种语法中,它只确定员工的第一个输入和最后一个输出,但是 我想问一下,我如何计算员工的第一次入职和最后一次出职之间的时差或总时间


例如,员工的第一个上班时间是上午9:00:00,最后一个下班时间是下午16:00:00。如何计算该员工的总工时?

请尝试以下操作:

SELECT empno , date_created , 
min(CASE WHEN status = 0 THEN time_created END) time_in,
max(CASE WHEN status = 1 THEN time_created END) time_out
FROM biometrics
WHERE empno = 3
GROUP BY empno , date_created 

通过这个,你可以发现firstin和lastout之间的小时差异

select 
  empno, 
  date_created, 
  time_in, 
  time_out, 
  time_format(timediff(time_out, time_in), '%H:%i') as total_time 
from 
(
  SELECT empno, date_created, 
    min(CASE WHEN status = 0 THEN time_created END) time_in,
    max(CASE WHEN status = 1 THEN time_created END) time_out
  FROM biometrics
  WHERE empno = 3 
  GROUP BY empno, date_created
) t1;
从表_name中选择DATEDIFF(小时、firstin(日期时间)、lastout(日期时间)) SELECT DATEDIFF(hour, firstin(datetime), lastout(datetime)) FROM table_name