I got an problem in my attendance for the shift of 09:35 PM - 05:35 AM
I have this example data that I was inserted in my database:
--09:35 PM - 05:35 AM Shift----
EMP_NO DATE_DTR DTR
00300395 2011-11-27 2011-11-27 21:02:39
00300395 2011-11-28 2011-11-28 05:36:48
---05:35 AM - 02:35 PM---
EMP_NO DATE_DTR DTR
00300395 2011-11-21 2011-11-21 05:09:09
00300395 2011-11-21 2011-11-21 13:39:35
---02:35 PM - 09:35 PM
EMP_NO DATE_DTR DTR
00300395 2011-11-15 2011-11-15 13:15:08
00300395 2011-11-15 2011-11-15 21:38:23
This sample data from three shifts and i got problem in 09:35 PM - 05:35 PM
here is my code to insert it in my database:
$sql = "INSERT INTO regular_dtr (EMP_NO, DATE_DTR, DTR) VALUES ('$EMP_NO', '$Date', '$DTR')";
As you noticed the TimeIn and TimeOut of employee is in one field.
And now i have another insert statement to get the min and max date of employee for time in and timeout.
And i noticed that I have problem in my 09:35 PM - 05:35 AM
$result = mysql_query("INSERT INTO regular_dtr_total(EMP_NO, DATE_DTR, max_dtr, min_dtr, TotalHours)
SELECT a.EMP_NO, a.DATE_DTR, max(b.DTR),min(a.dtr),
TIMEDIFF(max(b.DTR), min(a.DTR))
FROM regular_dtr a
LEFT JOIN regular_dtr b ON (a.EMP_NO = b.EMP_NO AND a.DATE_DTR = b.DATE_DTR)
GROUP BY a.EMP_NO, a.DATE_DTR")
or die(mysql_error());
It works in my 05:35 AM -02:35 PM and 02:35PM - 09:35 PM because in this shift is same in date, but in 09:35PM - 05:35 PM they are different date..
min_dtr = time in
max_dtr = time out
And the result of this insert query is like this:
-----09:35 PM - 05:35 AM ---
EMP_NO DATE_DTR max_dtr min_dtr
00300395 2011-11-27 2011-11-27 21:02:39 2011-11-27 21:02:39
00300395 2011-11-28 2011-11-28 21:08:35 2011-11-28 05:35:48
it shoud be like this:
EMP_NO DATE_DTR max_dtr min_dtr
00300395 2011-11-27 2011-11-28 05:35:48 2011-11-27 21:02:39
As you notices this date 2011-11-28 21:08:35 should be the time in for the date of 2011-11-28
And here is the correct output for 05:35 AM - 02:35 PM and 02:35 PM - 09:35 PM
EMP_NO DATE_DTR max_dtr min_dtr
00300395 2011-11-15 2011-11-15 21:38:23 2011-11-15 13:15:06 // 02:35 Pm - 09:35 PM
00300395 2011-11-21 2011-11-21 13:39:35 2011-11-28 05:09:09 // 05:35 AM - 02:35 PM
I hope somebody can help me to fix this problem..
And also i will find the solution for that.
Thank you so much..
Any help is highly appreciated and any question is free to ask for further understanding.


Sign In
Create Account


Back to top









