如何选择特定列的最短时间和最长时间?

时间:2018-06-20 08:35:50

标签: php mysqli

我的数据库中有一个表,如下所示:

EnNo     DateTime               
-------- -------------------
1        2015-01-22 11:30:51
1        2015-01-22 11:30:51
1        2015-01-22 18:30:42
1        2015-01-22 10:30:00
1        2015-01-22 18:30:00
1        2015-01-22 18:30:00
2        2015-01-22 11:59:31
2        2015-01-30 18:52:30

现在,我想从DateTime列中获取输入和输出时间,并在实际输出之后获得期望的输出:

EnNo     In                   Out
-------- -------------------  -------------------
1        11:30:51             18:30:42   
1        10:30:00             18:30:00
2        11:59:31             18:52:30

我已经使用以下查询来获取预期的输出,但它无法正常工作,即

select `EnNo`, time(min(`DateTime`)) as `In`, time(max(`DateTime`)) as `out` from attandance group by `EnNo`,time(`DateTime`)

给出以下输出

EnNo     In                   Out
-------- -------------------  -------------------
1        10:45:21             10:45:21
1        10:45:46             10:45:46
1        10:45:48             10:45:48
1        10:47:03             10:47:03 

所以,如何解决此问题?请帮助我。

谢谢

2 个答案:

答案 0 :(得分:0)

使用简单查询:

它将考虑在特定日期的最短时间和最长时间的超时时间

 select EnNo,min(DateTime) as in_time, max(DateTime) as out_time
from attandance
group by EnNo

答案 1 :(得分:0)

您可以尝试以下查询:

select `EnNo`, DATE_FORMAT(min(`DateTime`),'%H:%i:%s') as `In`, DATE_FORMAT(max(`DateTime`),'%H:%i:%s') as `out` 
from attandance group by `EnNo`