MONTHS_BETWEEN
MONTHS_BETWEEN関数は、日付date1とdate2の間の月数を戻します。
SQL構文
MONTHS_BETWEEN(date1, date2)
パラメータ
MONTHS_BETWEENには、次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
|
|
日時値、または日時値に変換可能な任意の値。 |
|
|
日時値、または日時値に変換可能な任意の値。 |
説明
入力パラメータは、TIMEまたはTT_TIMEデータ型を除き、サポートされているすべての日時データ型の組合せになります。サポートされている日時データ型は、DATE、TIMESTAMP、TT_DATE、TT_TIMESTAMP、ORA_DATEおよびORA_TIMESTAMPです。日時データ型の詳細は、「データ型」を参照してください。
戻りデータ型は、NUMBERです。
MONTHS_BETWEENは、日付date1とdate2の間の月数を戻します。
-
date1がdate2より後の日付の場合、結果は正の値になります。 -
date1がdate2より前の日付の場合、結果は負の値になります。 -
date1とdate2の両方が月の同じ日または月の最終日の場合、戻される結果は整数になります。それ以外の場合に戻される結果は、date1とdate2のパラメータの時刻部分の差を考慮した1か月31日を基準とする小数になります。
例
次の例では、2つの日付間の月数を計算します。
Command> SELECT MONTHS_BETWEEN(DATE '1995-02-02', DATE '1995-01-01')
AS Months FROM dual;
MONTHS
< 1.03225806451613 >
1 row found.
Command> SELECT MONTHS_BETWEEN(DATE '2010-02-02', DATE '2010-10-01') "Months"
FROM dual;
MONTHS
< -7.96774193548387 >
1 row found.
次のコマンドでは、CASTを使用し、CHAR文字列を明示的にタイムスタンプに変換します。最初の結果は整数に丸められます。
Command> SELECT ROUND ( MONTHS_BETWEEN (CAST ('2010-04-15 14:13:52'
AS TIMESTAMP), CAST ('2000-12-31 00:00:00' AS TIMESTAMP))),
MONTHS_BETWEEN (CAST ('2010-04-15 14:13:52' AS TIMESTAMP),
CAST ('2000-12-31 00:00:00' AS TIMESTAMP))
FROM dual;
< 112, 111.502998805257 >
1 row found.