システム日付や時間の変数(カスタム日付フォーマット基礎編)

2024年3月23日テクニカルメモ

この記事では、システム日付や時間が格納されている&変数を紹介しています。

カスタム日付フォーマット変数

&DATE から始まる変数は、日付フォーマットを指定することができます。
&DATEH から始まる変数は、日付時間フォーマットや時間フォーマットを指定することができます。

日付フォーマットは曜日を取得できますが時間を取得できません。
日付時間フォーマットは曜日を取得できませんが時間を取得できます。

基本形

年月日のみ

年月日部分の日付構成要素の順序は「年月日」「月日年」「日月年」の3種類です。
表記に関しては「YY」だと4桁年、「Y」だと下2桁年で表示されます。
例えば「&DATEHYYMD」を「&DATEHDMYY」とすると「年月日」が「日月年」に変わります。
「&DATEHDMY」とすると、「日月年」の順で年の表記が4桁から下2桁になります。

変数名 意味 表示例
&DATEHYYMD
&DATEYYMD
「yyyy/mm/dd」形式の日付2022/07/01
&DATEHMDYY
&DATEMDYY
「mm/dd/yyyy」形式の日付07/01/2022
&DATEHDMYY
&DATEDMYY
「dd/mm/yyyy」形式の日付01/07/2022
&DATEHYMD
&DATEYMD
「yy/mm/dd」形式の日付22/07/01
&DATEHMDY
&DATEMDY
「mm/dd/yy」形式の日付07/01/22
&DATEHDMY
&DATEDMY
「dd/mm/yy」形式の日付01/07/22

時間のみ

時間部分はナノ秒までの指定が可能ですが、ミリ秒以下は値がゼロになるため基本的には時分秒までを利用します。

変数名 意味 表示例
&DATEHH「hh」形式の時間(時)12
&DATEHHI「hh:mm」形式の時間(時分)12:34
&DATEHHIS「hh:mm:ss」形式の時間(時分秒)12:34:56
&DATEHHISs「hh:mm:ss.sss」形式の時間 (時分秒ミリ秒)12:34:56.000
&DATEHHISsm「hh:mm:ss.mmmmmm」形式の時間 (時分秒マイクロ秒) 12.34.56.000000
&DATEHHISsmn「hh:mm:ss.nnnnnnnnnnn」形式の時間 (時分秒ナノ秒) 12.34.56.000000000

年月日と時間

年月日と時間を合わせて取得するパターンのフォーマットです。
時間を含む年月日の要素は「日(D)」を必ず含める必要がありますが年や月は省略ができます。
例えば「&DATEHYYMDH」は「年(YY)」や「月(M)」を省略するように「&DATEHMDH」や「&DATEHDH」と表示することができます。
時間のみが必要な場合は、上述のフォーマットを利用します。

変数名 意味 表示例
&DATEHYYMDH 「yyyy/mm/dd hh」
形式の時間(時)
2022/07/01 12
&DATEHYYMDI 「yyyy/mm/dd hh:mm」
形式の時間(時分)
2022/07/01 12:34
&DATEHYYMDS 「yyyy/mm/dd hh:mm:ss」
形式の時間(時分秒)
2022/07/01 12:34:56
&DATEHYYMDs 「yyyy/mm/dd hh:mm:ss.sss」
形式の時間 (時分秒ミリ秒)
2022/07/01 12:34:56.000
&DATEHYYMDm 「 yyyy/mm/dd hh:mm:ss.mmmmmm」
形式の時間 (時分秒マイクロ秒)
2022/07/01 12.34.56.000000
&DATEHYYMDn 「yyyy/mm/dd hh:mm:ss.nnnnnnnnnnn」
形式の時間 (時分秒ナノ秒)
2022/07/01 12.34.56.000000000
確認用サンプルプロシジャ
-* 日付
-TYPE DATEHYYMD:&DATEHYYMD
-TYPE DATEHMDYY:&DATEHMDYY
-TYPE DATEHDMYY:&DATEHDMYY
-TYPE DATEHYMD :&DATEHYMD
-TYPE DATEHMDY :&DATEHMDY
-TYPE DATEHDMY :&DATEHDMY

-* 時間
-TYPE DATEHH     :&DATEHH
-TYPE DATEHHI    :&DATEHHI
-TYPE DATEHHIS   :&DATEHHIS
-TYPE DATEHHISs  :&DATEHHISs
-TYPE DATEHHISsm :&DATEHHISsm
-TYPE DATEHHISsmn:&DATEHHISsmn

-* 日付時間
-TYPE DATEHYYMDH:&DATEHYYMDH
-TYPE DATEHYYMDI:&DATEHYYMDI
-TYPE DATEHYYMDS:&DATEHYYMDS
-TYPE DATEHYYMDs:&DATEHYYMDs
-TYPE DATEHYYMDm:&DATEHYYMDm
-TYPE DATEHYYMDn:&DATEHYYMDn

個別要素

年月日時分秒

日付や時間等の個別要素を取得するフォーマットです。
時間部分は上述と同じ理由から基本的には時分秒までを利用します。

変数名 意味 表示例
&DATEHYY年(4桁)2022
&DATEHM月(2桁)07
&DATEHD日(2桁)01
&DATEHH時間(24時間表記)12
&DATEHI34
&DATEHS56
&DATEHSsミリ秒56.000
&DATEHSsmマイクロ秒56.000000
&DATEHSsmnナノ秒56.000000000

四半期とユリウス日

四半期は、1年の4分の1を示します。
ユリウス日は、その年の経過日数を示します。

変数名 意味 表示例(DEFAULT)
&DATEQ四半期
 Q1:1月~3月
 Q2:4月~6月
 Q3:7月~9月
 Q4:10月~12月
Q3
&DATEYYQ四半期(年は4桁)2022 Q3
&DATEJUL3桁のユリウス日(年は下2桁)22/182
&DATEYYJUL3桁のユリウス日(年は4桁)2022/182
2022年7月1日に実行した場合(2022年1月1日を起点として182日目)

曜日

曜日を取得するフォーマットです。
週の名前は「英語表示」と「日本語表示」の2種類があり、「SET DATEOUTPUT=DEFAULT」だと英語、「SET DATEOUTPUT=LOCALIZED」だと日本語になります。
年月日を含めるパターンもあります。

変数名 意味 表示例(DEFAULT) 表示例(LOCALIZED)
&DATEW週番号
 1:月
 2:火
 3:水
 4:木
 5:金
 6:土
 7:日
55
&DATEWR週の名前(全体大文字、長い名前)FRIDAY金曜日
&DATEwr週の名前(先頭大文字、長い名前)Friday(金)
&DATEYYMDWR「yyyy/mm/dd, 曜日の名前」形式
 曜日:全体大文字、長い名前
2022/07/01, FRIDAY2022/07/01, 金曜日
&DATEYYMDW「yyyy/mm/dd, 曜日の名前」形式
 曜日:全体大文字、短い名前
2022/07/01, FRI2022/07/01, 金
&DATEYYMDwr「yyyy/mm/dd, 曜日の名前」形式
 曜日:先頭大文字、長い名前
2022/07/01, Friday2022/07/01, (金)
&DATEYYMDw「yyyy/mm/dd, 曜日の名前」形式
 曜日:先頭大文字、短い名前
2022/07/01, Fri2022/07/01, 金
2022年7月1日(金)に実行した場合
確認用サンプルプロシジャ
-* 年月日時分秒
-TYPE DATEHYY  :&DATEHYY
-TYPE DATEHM   :&DATEHM
-TYPE DATEHD   :&DATEHD
-TYPE DATEHH   :&DATEHH
-TYPE DATEHI   :&DATEHI
-TYPE DATEHS   :&DATEHS
-TYPE DATEHSs  :&DATEHSs
-TYPE DATEHSsm :&DATEHSsm
-TYPE DATEHSsmn:&DATEHSsmn

-* 四半期
-TYPE DATEQ    :&DATEQ
-TYPE DATEYYQ  :&DATEYYQ

-* ユリウス日
-TYPE DATEJUL  :&DATEJUL
-TYPE DATEYYJUL:&DATEYYJUL

-* 英語曜日
SET DATEOUTPUT=DEFAULT
-RUN
-TYPE DATEW :&DATEW
-TYPE DATEWR:&DATEWR
-TYPE DATEwr:&DATEwr
-TYPE DATEYYMDWR:&DATEYYMDWR
-TYPE DATEYYMDW :&DATEYYMDW
-TYPE DATEYYMDwr:&DATEYYMDwr
-TYPE DATEYYMDw :&DATEYYMDw

-* 日本語曜日
SET DATEOUTPUT=LOCALIZED
-RUN
-TYPE DATEW :&DATEW
-TYPE DATEWR:&DATEWR
-TYPE DATEwr:&DATEwr
-TYPE DATEYYMDWR:&DATEYYMDWR
-TYPE DATEYYMDW :&DATEYYMDW
-TYPE DATEYYMDwr:&DATEYYMDwr
-TYPE DATEYYMDw :&DATEYYMDw