我的数据库中有一个表,如下所示:
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
所以,如何解决此问题?请帮助我。
谢谢
答案 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`