その関数はOracleRDMBSには存在しません。それは明らかにOracleLite(私が遭遇したことのない)で行われ、MySQLのような他のデータベースにあると思います。
日時と区間演算> そこへの道の一部になります。あるタイムスタンプを別のタイムスタンプから引くことができます。または、ある日付から別の日付、または2つの日付の組み合わせですが、1つのデータ型に固執する方が簡単です。どちらを使用するかに応じて、間隔または日数を表す数値が表示されます。
SQL> SELECT CURRENT_TIMESTAMP - TIMESTAMP '1998-12-09 00:00:00' FROM DUAL;
CURRENT_TIMESTAMP-TIMESTAMP'1998-12-0900:00:00'
---------------------------------------------------------------------------
+000006169 16:16:21.287166000
SQL> SELECT CURRENT_DATE - DATE '1998-12-09' FROM DUAL;
CURRENT_DATE-DATE'1998-12-09'
-----------------------------
6169.67775
丸一日の日数だけが必要な場合は、<を使用できます。 code> extract()
必要な要素だけを取得する間隔、または trunc()
小数部分を削除する数について:
SQL> SELECT EXTRACT(DAY FROM CURRENT_TIMESTAMP - TIMESTAMP '1998-12-09 00:00:00') FROM DUAL;
EXTRACT(DAYFROMCURRENT_TIMESTAMP-TIMESTAMP'1998-12-0900:00:00')
---------------------------------------------------------------
6169
SQL> SELECT TRUNC(CURRENT_DATE - DATE '1998-12-09') FROM DUAL;
TRUNC(CURRENT_DATE-DATE'1998-12-09')
------------------------------------
6169
trunc()
もできます。
必要に応じて、比較前の現在の日付。つまり、両方を深夜に比較します。つまり、削除する小数の日の部分はありません。
SQL> SELECT TRUNC(CURRENT_DATE) - DATE '1998-12-09' FROM DUAL;
TRUNC(CURRENT_DATE)-DATE'1998-12-09'
------------------------------------
6169
固定日付にはANSI日付リテラルを使用しましたが、既存の日付またはタイムスタンプの変数または列を使用できます。またはto_date()
またはto_timestamp()
別の形式の文字列がある場合。
extract()
を使用することもできます 間隔のコンポーネントを結合値に変換するには、 current_date
の違いを認識していることを確認してください およびsysdate
、および同等のタイムスタンプ
。