Helmuth: Login- und Logoutzeiten vergleichen

Beitrag lesen

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?