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

レコード間の時間差

    これは、LAG関数 を使用するOracle9i+です。 自己参加せずに以前のタイムスタンプ値を取得するには:

    SELECT t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp) AS diff
      FROM YOUR_TABLE t
    

    ...ただし、整数は結果の日数を表すため、24時間未満の差はわずかです。また、以前の値がない場合、LAGはNULLを返します。これは、OUTERJOINを使用した場合と同じです。

    分を表示するには、ROUND関数を使用します:

    SELECT ROUND((t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp)) *1440) AS diff_in_minutes
      FROM YOUR_TABLE t
    


    1. SQL Server 2008 R2でCONCAT関数を使用するにはどうすればよいですか?

    2. SQLite-CSVファイルからデータをインポートする

    3. PHP-MySQL-行の削除

    4. mysqliのmysql_field_nameの代替