AntonSangho / moya_attendance

이 프로젝트는 어린이작업장 '모야'에 설치될 입출력관리시스템입니다.
1 stars 0 forks source link

stat attentant view 의 usedtime이 문제가 있음. #37

Closed AntonSangho closed 4 years ago

AntonSangho commented 4 years ago
스크린샷 2020-08-27 오후 3 01 22

30번을 예로 보면 입장시간과 퇴장시간을 봤을 때 1시간 정도인데 3시간으로 표시됨. 대부부은 2시간 정도 추가되어 사용시간이 나오는 문제가 있음.

create definer = righthand@`%` view stat_attentance as
select `a`.`user_id`                              AS `userid`,
       `a`.`clock_in`                             AS `entry_time`,
       `b`.`clock_in`                             AS `exit_time`,
       ((`b`.`clock_in` - `a`.`clock_in`) / 3600) AS `used_time`
from (`moya`.`filter_attendance` `a`
         left join `moya`.`exits` `b` on (((`a`.`user_id` = `b`.`user_id`) and
                                           (substr(`a`.`clock_in`, 1, 10) = substr(`b`.`clock_in`, 1, 10)))))
where (1 = 1)
order by `a`.`clock_in` desc;

이 구문에서 used_time은 만드는 부문의 문제가 있음

((b.clock_in - a.clock_in) / 3600) AS used_time

AntonSangho commented 4 years ago

문제는 3600을 나누기 했을때 나오는 문제였음. timestampdiff함수를 사용하여 분단위로 나올 수 있도록 SQL문으로 변경했음.

create definer = righthand@`%` view stat_attendance as
select `a`.`user_id`                              AS `userid`,
       `a`.`clock_in`                             AS `entry_time`,
       `b`.`clock_in`                             AS `exit_time`,
       timestampdiff(minute ,`a`.`clock_in` , `b`.`clock_in`) AS `used_time`
from (`moya`.`filter_attendance` `a`
         left join `moya`.`exits` `b` on (((`a`.`user_id` = `b`.`user_id`) and
                                           (substr(`a`.`clock_in`, 1, 10) = substr(`b`.`clock_in`, 1, 10)))))
where (1 = 1)
order by `a`.`clock_in` desc;