Mysql
 sql >> Baza danych >  >> RDS >> Mysql

obliczanie całkowitego czasu logowania i wylogowania danego użytkownika w mysql

Rekomendacja a'r ma wiele sensu. Również obliczanie czasu trwania każdej sesji przy wylogowaniu jest znacznie lepszym podejściem - chociaż nie jest to ściśle znormalizowane, rozkłada obciążenie obliczeń....

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kod błędu:1292. Obcięta niepoprawna PODWÓJNA wartość:„tak”

  2. Czy limit maksymalnej liczby tabel sprzężeń SQL dotyczy całego zapytania, czy podzapytania są liczone osobno?

  3. Wymień wszystkie tabele zawierające podaną nazwę kolumny

  4. jak używać LIKE z nazwą kolumny

  5. Uzyskaj niezaangażowane dane w MySQL