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

連続する行間の1人あたりの時間差

    self Join()メソッドを使用します。

        SELECT a.person, 
                a.taskid, 
                TIMEDIFF (DATE_FORMAT(STR_TO_DATE(a.Start_time, '%a, %d %b %Y %H:%i:%s'), '%Y-%m-%d %H:%i:%s') ,DATE_FORMAT(STR_TO_DATE(b.End_time, '%a, %d %b %Y %H:%i:%s'), '%Y-%m-%d %H:%i:%s') ) as Time_between_attempts,
                a.Start_time,
                b.End_time
    
            FROM   test a 
                LEFT JOIN test b 
                        ON a.person = b.person 
                            AND a.taskid = b.taskid + 1 
            ORDER  BY 1, 2; 
    

    ただし、これはタイムゾーンを無視します。



    1. 長い型の数値を使用してvarchar型をフィルタリングすると、MySQLは余分なレコードを返します

    2. Liferay:適切なドライバーが見つかりません

    3. bind_resultとget_resultの使用方法の例

    4. SQLのwhere条件を含むCaseステートメント