Tach,
ich habe da ein Problem. Ich habe ne Log-Tabelle, in der die Login- und Logoutzeiten von Benutzer stehen.
ID | IDUSER | DATETIME_LOGIN | DATETIME_LOGOUT
--------------------------------------------------------
1 | 8 | 2008-04-10 19:00:13 | 2008-04-10 19:45:23
2 | 8 | 2008-04-10 19:48:16 | 2008-04-10 21:17:03
3 | 8 | 2008-04-11 12:01:33 | 2008-04-11 12:15:13
4 | 8 | 2008-04-12 00:01:38 | 2008-04-12 03:48:16
5 | 8 | 2008-04-13 06:58:54 | 2008-04-13 11:47:23
Ich möchte gerne die Zeiten auswerten. Es gibt hierfür wiederum für diverse Zeiten auch verschiedene Stundensätze. 00:00:00-01:59:59 Uhr gibt es beispielsweise einen Aufschlag. Das Problem ist, dass sich der Benutzer mehrmals am tag einloggt und die Aufschläge im Login-zeitraum liegen kann (siehe ID 4).
Hat jemand ne Idee wie man das errechnen kann?
Hier ist mein Ansatz:
SELECT
SUM( UNIX_TIMESTAMP( l.datetime_logout ) - UNIX_TIMESTAMP( l.datetime_login ) ) AS seconds
FROM login_log AS l
WHERE
l.id_user = 8
AND DATE_FORMAT( l.datetime_login, '%Y.%m.%d' ) = '2008.04.12'
AND DATE_FORMAT( l.datetime_login, '%H%i%s' ) <= '000000'
AND DATE_FORMAT( l.datetime_login, '%H%i%s' ) >= '015959'
AND WEEKDAY( l.datetime_login ) != 5
AND WEEKDAY( l.datetime_login ) != 6
LIMIT 1
Hat jemand da eine einfachere Idee?