Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

tính toán tổng thời gian đăng nhập-đăng xuất của một người dùng cụ thể trong mysql

lời giới thiệu của a rất có ý nghĩa. Ngoài ra, tính toán thời lượng cho mỗi phiên khi đăng xuất là một cách tiếp cận tốt hơn nhiều - mặc dù điều này không được bình thường hóa hoàn toàn, nhưng nó sẽ phân chia tải trọng tính toán ....

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. Cách khắc phục việc tạo lược đồ Slick 3.0 gặp lỗi do các thông số kỹ thuật chính không có độ dài

  2. MySQL - Phiên bản MySQL này chưa hỗ trợ 'LIMIT &IN / ALL / ANY / SOME truy vấn con

  3. Sử dụng nhóm theo hai trường và đếm trong SQL

  4. Dừng truy vấn MySQL sau hàng đầu tiên

  5. mySQL regex trong mệnh đề where