かなめのロジック

フリーSEの雑記ブログ。ORACLEやPostgreSQL、情報セキュリティ、金融について主に書いています。

日付関数

ORACLEの日付関数のリファレンスです。

※当ページにおいて、検索結果イメージの半角スペースは【_】、NULLは【NULL】と表現しています。

sponsored link

ADD_MONTHS

文法
ADD_MONTHS(引数1[日付型],引数2[数値型])

戻り値
日付型

説明
引数1に引数2(月数)を加えた日付値をDATE型で戻す
引数2(月数)にマイナス値を設定することで減算も可能

備考
1月30日の1月加算といった加算減算結果が月の最終日を超える場合、
月の最終日を戻す

また、月の最終日を引数1に指定した場合、月の最終日を戻す

上記2つの特性から、ADD_MONTHSを複数重ねる場合は注意が必要
1回で処理する場合と結果が変わることがある

NEXT_DAY

文法
NEXT_DAY(引数1[日付型],引数2[文字型](曜日の名称))
NEXT_DAY(引数1[日付型],引数2[数値型](週初めからの日数1~7))

戻り値
日付型

説明
引数1より未来で直近の引数2(曜日)の日付値をDATE型で戻す

引数2で曜日の名称を指定・・・
NLS初期化パラメータのNLS_DATE_LANGUAGEがJAPANESEの場合、
‘月曜日’~’日曜日’を指定する
※略称での指定も可能(‘月’や’月曜’)

引数2で週初めからの日数を指定・・・
NLS初期化パラメータのNLS_TERRITORYがJAPANの場合、
1が日曜日、2が月曜日・・・7が土曜日となる
※月曜日が週初めの国もあるので注意(ドイツ、フランス、イギリスなど)
 日曜日が週初めの国(日本、アメリカ、中国など)

LAST_DAY

文法
LAST_DAY(引数1[日付型])

戻り値
日付型

説明
引数1の月末日付をDATE型で戻す

MONTHS_BETWEEN

文法
MONTHS_BETWEEN(引数1[日付型],引数2[日付型])

戻り値
数値型

説明
引数1・2間の月数を計算する
引数1・2が同じ日であるか、どちらも月末の場合、差を整数で戻す(時分秒は加味しない)
上記以外の場合、1カ月を31日として差を小数部ありで戻す(時分秒を加味する)
引数1>引数2の場合正の値となり、引数1<引数2の場合負の値を戻す

ROUND

文法
ROUND(引数1[日付型(DATE型)],引数2[文字型](丸める単位))
※引数2は省略可能、省略した場合’DD’と同義

戻り値
日付型

説明
引数1を引数2で指定した単位で丸めた日付値をDATE型で戻す

引数2のフォーマット

書式モデル 切捨て単位 境界
CC
SCC
世紀 xx51年
YYYY
SYYYY
YEAR
SYEAR
YYY
YY
Y
7月
Q 四半期 2月5月8月11月の16日
MM
MONTH
MON
RM
16日
WW 対象となる年の最初の日と同じ曜日
W 対象となる月の最初の日と同じ曜日
DAY
DY
D
開始曜日 水曜日の12時
DD
DDD
J
12時
HH
HH12
HH24
時刻 30分
MI 30秒

SYSDATE

文法
SYSDATE

戻り値
日付型

説明
システム日時をDATE型で戻す

SYSTIMESTAMP

文法
SYSTIMESTAMP

戻り値
日付型(TIMESTAMP WITH TIME ZONE型)

説明
システム日時をTIMESTAMP WITH TIME ZONE型で戻す
SYSDATEでは取得できない小数秒も取得できる
小数秒の精度はOSや基盤によって異なり注意が必要

TO_CHAR

文法
TO_CHAR(引数1[日付型])
TO_CHAR(引数1[日付型],引数2[文字型(日時書式フォーマット)])

戻り値
文字型

説明
引数1を引数2のフォーマットで文字型に変換し戻す
引数2を省略した場合は、NLS初期化パラメータのNLS_DATE_FORMATが使用される

引数2の日時書式フォーマット(代表的なものを掲載)

書式モデル 説明
YYYY 西暦
Y~YYY 西暦の下1~3桁
MM 月(2桁の数値)
DD 日(2桁の数値)
HH24 時刻(24時間表記)
MI
SS
FF1~FF9 秒の小数部(引数1がTIMESTAMP WITH TIME ZONE型などの場合のみ有効)
D 曜日(1桁の数値) 週の初めからの日にち(1~7)
NLS初期化パラメータのNLS_TERRITORYに依存
日本(JAPAN)、アメリカ、中国などは、1が日曜日となる
ドイツ、フランス、イギリスなどは、1が月曜日となる
-/,.;:
半角スペース
区切り文字
ハイフン、スラッシュ、カンマ、ドット、セミコロン、コロン、半角スペース

TO_DATE

文法
TO_DATE(引数1[文字型])
TO_DATE(引数1[文字型],引数2[文字型(日時書式フォーマット)])

戻り値
日付型

説明
引数1を引数2のフォーマットでDATE型に変換し戻す
引数2を省略した場合は、NLS初期化パラメータのNLS_DATE_FORMATが使用される
また、指定しなかったフィールドは自動的に補完される

引数2の日時書式フォーマット(代表的なものを掲載)

書式モデル 説明
YYYY 西暦
Y~YYY 西暦の下1~3桁
MM 月(2桁の数値)
DD 日(2桁の数値)
HH24 時刻(24時間表記)
MI
SS
-/,.;:
半角スペース
区切り文字
ハイフン、スラッシュ、カンマ、ドット、セミコロン、コロン、半角スペース

TRUNC

文法
TRUNC(引数1[日付型(DATE型)],引数2[文字型](丸める単位))
※引数2は省略可能、省略した場合’DD’と同義

戻り値
日付型

説明
引数1を引数2で指定した単位で切捨てた日付値をDATE型で戻す

引数2のフォーマット

書式モデル 切捨て単位
CC
SCC
世紀
YYYY
SYYYY
YEAR
SYEAR
YYY
YY
Y
Q 四半期
MM
MONTH
MON
RM
WW 対象となる年の最初の日と同じ曜日
W 対象となる月の最初の日と同じ曜日
DAY
DY
D
開始曜日
DD
DDD
J
HH
HH12
HH24
時刻
MI

sponsored link

管理人

かなめ

フリーの業務系システムエンジニア。情報処理安全確保支援士。 ORACLEと金融と子育ての狭間で、元気に楽しくやってます。 [詳細]

管理人twitter

ブログ村



sponsored link