web-dev-qa-db-ja.com

Oracle:2つの日付を減算して結果の分を取得する方法

日付から分を取得するためにこの関数を作成しましたが、2つの日付の間に分を取得することはできません。

FUNCTION get_minute(p_date DATE)
RETURN NUMBER
IS
BEGIN
    IF p_date IS NOT NULL THEN
        return  EXTRACT(MINUTE FROM TO_TIMESTAMP(to_char(p_date,'DD-MON-YYYY HH:MI:SS'),'DD-MON-YYYY HH24:MI:SS'));
    ELSE
        RETURN 0;
    END IF;
END get_minute;
12
Frank

Oracleで2つの日付を減算すると、2つの値の間の日数が得られます。そのため、代わりに数分で結果を得るために乗算する必要があります。

SELECT (date2 - date1) * 24 * 60 AS minutesBetween
FROM ...
37
lc.

(日付の代わりに)2つのタイムスタンプを使用したい場合、同様の解決策があります。

SELECT ( CAST( date2 AS DATE ) - CAST( date1 AS DATE ) ) * 1440 AS minutesInBetween
FROM ...

または

SELECT ( CAST( date2 AS DATE ) - CAST( date1 AS DATE ) ) * 86400 AS secondsInBetween
FROM ...
9
KeyMaker00