SQL単一行関数(日付関数)
本項では、SQL単一行関数のなかの、日付関数を紹介しております。日付データは算術演算子を使用して計算することができます。
日付データを使用した可能な計算
「日付+数値」:日付に数値分足した日付が戻されます。
「日付-数値」:日付から数値分引いた日付が戻されます。
「日付−日付」:日付間の日数が戻されます。
日付+数値/24:日付に時間を足した日付が戻されます。
日付データを使用した不可能な計算
「日付+日付」
除法、乗法
|
使用例)日付データを使用した計算例
SQL> SELECT TO_DATE('09-12-31') + 90 FROM DUAL;
TO_DATE(
--------
10-03-31
SQL> SELECT TO_DATE('09-12-31') - 90 FROM DUAL;
TO_DATE(
--------
09-10-02
SQL> SELECT TO_DATE('09-12-31') - TO_DATE('09-10-02') FROM DUAL;
TO_DATE('09-12-31')-TO_DATE('09-10-02')
---------------------------------------
90
|
@ADD_MONTHS関数
説明: ADD_MONTHS(日付,n)・・・・日付にnヶ月足した値を戻す。nにマイナス値を指定するとnヵ月前となる。
使用例)('09-12-31')に1ヶ月足した値を戻す。
SQL> SELECT ADD_MONTHS('09-12-31',1) FROM DUAL;
ADD_MONT
--------
10-01-31
|
ALAST_DAY関数
説明: LAST_DAY(日付)・・・・指定した日付の月末日を戻す
使用例)('09-12-1')の月末日を戻す。
SQL> SELECT LAST_DAY('09-12-01') FROM DUAL;
LAST_DAY
--------
09-12-31
|
BNEXT_DAY関数
説明: NEXT_DAY(日付、曜日)・・・・次の曜日を迎える日付を戻す
使用例)('09-12-31')以降の最初の月曜日の日付を戻す
SQL> SELECT NEXT_DAY('09-12-31','月曜日') FROM DUAL;
NEXT_DAY
--------
10-01-04
|
CMONTHS_BETWEEN関数
説明: MONTHS_BETWEEN(日付1、日付2)・・・日付1と日付2の間の月数を戻す
使用例)('09-12-31')と('09-7-1')の間の月数 、('09-12-31')と('10-7-1')の間の月数を戻す。
SQL> SELECT MONTHS_BETWEEN('09-12-31','10-7-1') FROM DUAL;
MONTHS_BETWEEN('09-12-31','10-7-1')
-----------------------------------
-6.0322581
SQL> SELECT MONTHS_BETWEEN('09-12-31','9-7-1') FROM DUAL;
MONTHS_BETWEEN('09-12-31','9-7-1')
----------------------------------
5.96774194
|
DSYSDATE関数
説明: SYSDATE・・・・現在の日時を戻す
ETRUNC関数
説明: TRUNC(日付、[書式]・・・・指定した単位に日付データを切り捨てる。デフォルトは日にちです。
FROUND関数
説明: ROUND(日付、[書式])・・・・指定した単位に日付データを四捨五入する。デフォルトは日にちです。
使用例)SYSDATE,TRUNC、ROUND関数の出力比較
SQL> SELECT SYSDATE,TRUNC(SYSDATE,'MONTH'),ROUND(SYSDATE,'MONTH') FROM DUAL;
SYSDATE TRUNC(SY ROUND(SY
-------- -------- --------
09-04-26 09-04-01 09-05-01
|
|
スポンサードリンク
|