web-dev-qa-db-ja.com

Oracle-2つのDateTime列の差を分単位で取得するのに最適なSELECTステートメント

クライアントからのやや難しいレポート要求を処理しようとしていますが、2つのDateTime列の違いを数分で取得するために離れて見つける必要があります。さまざまな formats でtruncとroundを使用しようとしましたが、意味のある組み合わせを思い付くことができません。これを行うエレガントな方法はありますか?そうでない場合、あります どれか これを行う方法?

20
AJ.
SELECT date1 - date2
  FROM some_table

日数の差を返します。 24を掛けて時間の差を取得し、24 * 60で分を取得します。そう

SELECT (date1 - date2) * 24 * 60 difference_in_minutes
  FROM some_table

あなたが探しているものでなければなりません

47
Justin Cave

デフォルトでは、Oracleの日付の減算は、日数で結果を返します。

したがって、24を掛けて時間数を取得し、60を分数で取得します。

例:

select
  round((second_date - first_date) * (60 * 24),2) as time_in_minutes
from
  (
  select
    to_date('01/01/2008 01:30:00 PM','mm/dd/yyyy hh:mi:ss am') as first_date
   ,to_date('01/06/2008 01:35:00 PM','mm/dd/yyyy HH:MI:SS AM') as second_date
  from
    dual
  ) test_data
10
JosephStyons
3
Cade Roux