Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

menghitung total waktu masuk-keluar dari pengguna tertentu di mysql

rekomendasi a'r sangat masuk akal. Juga menghitung durasi untuk setiap sesi saat logout adalah pendekatan yang jauh lebih baik - meskipun ini tidak sepenuhnya dinormalisasi, ini menyebarkan beban penghitungan....

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. Mengapa mysqli memberikan perintah tidak sinkron?

  2. menampilkan satu kolom beberapa kali dengan data dari 3 interval tanggal yang berbeda

  3. Tidak dapat terhubung ke mysql melalui servlet

  4. ekstensi mysqli tidak ada debian

  5. pyodbc tidak menangani data unicode dengan benar