sql >> データベース >  >> RDS >> Mysql

mysqlの特定のユーザーの合計ログイン-ログアウト時間を計算する

    a'rの推奨は非常に理にかなっています。また、ログアウト時に各セッションの期間を計算する方がはるかに優れたアプローチです。これは厳密には正規化されていませんが、計算の負荷が分散されます。...

    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. Mysql:macOSにインストールした直後にユーザー'root'@'localhost'のアクセスが拒否されました

    2. 日付/時刻の追加の基準は?

    3. SQLServer出力句をスカラー変数に

    4. MYSQLで日付フィールドをフォーマットする方法