sql >> Databasteknik >  >> RDS >> Mysql

beräkna total inloggning-utloggningstid för en viss användare i mysql

a'rs rekommendation är väldigt vettig. Att beräkna varaktigheten för varje session vid utloggning är också ett mycket bättre tillvägagångssätt - även om detta inte är strikt normaliserat, sprider det belastningen av beräkningar...

SELECT ilv.employee, 
SUM(UNIX_TIMESTAMP(logouttime) 
  - IF(logintime IS NULL, 
        UNIX_TIMESTAMP(logouttime), 
        UNIX_TIMESTAMP(logintime)))
FROM (
    SELECT a.employeeId, a.time AS logouttime,
    (SELECT MAX(b.time)
      FROM log b
      WHERE b.employeeId=a.employeeId
      AND b.time<a.time
      AND b.type='login')  as logintime
    FROM log a 
    WHERE a.type='logout'
    AND a.time BETWEEN <range start> AND <range end>
    AND employeeId=1 /* optional */
) ilv
GROUP BY ilv.employeeId



  1. Separera kommaseparerade värden och lagra i tabell i sql-server

  2. Hur kan jag automatiskt skapa en e-postadress för mina webbplatsmedlemmar?

  3. Tvinga InnoDB att kontrollera främmande nycklar på ett eller flera tabeller igen?

  4. Visa innehållet i databasfilen i Android Studio