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

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

この記事では、「カスタム日付フォーマット基礎編」から発展させた内容を記載しています。

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

基本編では紹介できていないフォーマットを紹介します。
日付型は「日付フォーマット(YYMD等)」「日付時間フォーマット(DATEHYYMDS等)」「時間フォーマット(DATEHHIS等)」の3種類があることに注意してご確認ください。

前ゼロや区切り文字の省略

年月日のうち、1桁の月や日の時に前ゼロを省略することができます。
時分秒についても、1桁の時間の前ゼロを省略することができます。
その他、年月日の区切り文字であるスラッシュも省略可能です。

月日や時間の前ゼロの省略

日付フォーマットの「M」や「D」を「o」や「e」に変更すると、1桁の月日の前ゼロが省略されます。
時間フォーマットの時分秒の表示も「HHIS」の「H」を「h」とすることで、1桁の時間の前ゼロが省略されます。

変数名 意味 表示例
&DATEHYYoe「yyyy/mm/dd」形式の日付
 月:「M」2桁、「o」ゼロを省略
 日:「D」2桁、「e」ゼロを省略、「d」ゼロをブランク
2022/7/1
&DATEHhIS「hh:mm:ss」形式の時分秒
 時:「H」2桁、「h」ゼロを省略
1:23:45

年月日の区切り文字の省略

年月日はスラッシュで区切られますが、省略することもできます。

変数名 意味 表示例
&DATEYYBMBD年月日(ブランク区切り)2022 07 01
&DATEHYYMDB年月日(ブランク区切り)2022 07 01
&DATEHYYMDN年月日(区切り無し)20220701
2022年7月1日(金)に実行した場合
確認用サンプルプロシジャ
-* 月日や時間の前ゼロの省略
-TYPE DATEHYYoe:&DATEHYYoe
-TYPE DATEHhIS :&DATEHhIS

-* 年月日のスラッシュの省略(日付フォーマット)
-TYPE &DATEYYBMBD

-* 年月日のスラッシュの省略(日付時間フォーマット)
-TYPE &DATEHYYMDN
-TYPE &DATEHYYMDB

月の名前表示

年月日のうち、月の部分は名前表示にすることができます。
月の名前は「英語表示」と「日本語表示」の2種類があり、「SET DATEOUTPUT=DEFAULT」だと英語、「SET DATEOUTPUT=LOCALIZED」だと日本語になります。 例えば、1月は「1月」「January」「Jan」等で表示できますが、日本ではあまり利用されないフォーマットです。

アメリカ式の日付表現(日付フォーマット)

アメリカでは月日の後にカンマで区切って年を書く順番が一般的とされているようです。
月の部分を名前で表示する場合は、日の前ゼロは省略される形になります。

変数名 意味 表示例(DEFAULT) 表示例(LOCALIZED)
&DATEMTDYY月日年
 月:全体大文字の短い名前
 日:前ゼロを省略
 年:4桁
JUL 1, 20227 1, 2022
&DATEMtDYY月日年
 月:先頭大文字の短い名前
 日:前ゼロを省略
 年:4桁
Jul 1, 20227 1, 2022
&DATEMTRDYY月日年
 月:全体大文字の長い名前
 日:前ゼロを省略
 年:4桁
JULY 1, 20227月 1, 2022
&DATEMtrDYY月日年
 月:先頭大文字の長い名前
 日:前ゼロを省略
 年:4桁
July 1, 20227月 1, 2022
2022年7月1日(金)に実行した場合

イギリス式の日付表現(日付時間フォーマット)

イギリスではカンマで区切ることはなく日月年の順番が一般的とされているようです。
アメリカ式と異なり、日付の前ゼロを省略する場合は「D」ではなく「e」を指定します。
また、日付フォーマットでは月の名前フォーマットとして「MT」「Mt」「MTR」「Mtr」の4種類がありますが、日付時間フォーマットでは「MT」と「Mt」の2種類です。「MT」の結果は、日付フォーマットだと全体大文字となり日付時間フォーマットだと先頭大文字となります。

変数名 意味 表示例(DEFAULT) 表示例(LOCALIZED)
&DATEHeMTYY日月年
 日:前ゼロは省略
 月:先頭大文字の長い名前
 年:4桁
1 July 20221 7月 2022
&DATEHeMtYY日月年
 日:前ゼロは省略
 月:先頭大文字の短い名前
 年:4桁
1 Jul 20221 77 2022
※利用しません
2022年7月1日(金)に実行した場合
確認用サンプルプロシジャ
-* 英語表示
SET DATEOUTPUT=DEFAULT
-RUN
-TYPE DATEHeMTYY:&DATEHeMTYY
-TYPE DATEHeMtYY:&DATEHeMtYY

-TYPE DATEMTDYY :&DATEMTDYY
-TYPE DATEMtDYY :&DATEMtDYY
-TYPE DATEMTRDYY:&DATEMTRDYY
-TYPE DATEMtrDYY:&DATEMtrDYY

-* 日本語表示
SET DATEOUTPUT=LOCALIZED
-RUN
-TYPE DATEHeMTYY:&DATEHeMTYY
-TYPE DATEHeMtYY:&DATEHeMtYY

-TYPE DATEMTDYY :&DATEMTDYY
-TYPE DATEMtDYY :&DATEMtDYY
-TYPE DATEMTRDYY:&DATEMTRDYY
-TYPE DATEMtrDYY:&DATEMtrDYY

時間のAM/PM表示

時間をAM/PMで表示する方法です。
日付時間フォーマットでは時間の前ゼロが省略されます。時間フォーマットも前ゼロを省略したい場合は、上述の通り「&DATEHhISA」といったフォーマットを指定します。

変数名 意味 表示例
&DATEHYYMDSA年月日時分秒
 AM/PM(大文字、ブランク無し)
2022/07/01 3:34:56PM
&DATEHYYMDSa年月日時分秒
 AM/PM(小文字、ブランク無し)
2022/07/01 3:34:56pm
&DATEHYYMDSB年月日時分秒
 AM/PM(大文字、ブランク有り)
2022/07/01 3:34:56 PM
&ATEHYYMDSb年月日時分秒
 AM/PM(小文字、ブランク有り)
2022/07/01 3:34:56 PM
&DATEHHISA時分秒
 AM/PM(大文字、ブランク無し)
03:34:56PM
&DATEHHISa時分秒
 AM/PM(小文字、ブランク無し)
03:34:56PM
&DATEHHISB時分秒
 AM/PM(大文字、ブランク有り)
03:34:56 PM
&DATEHHISb時分秒
 AM/PM(小文字、ブランク有り)
03:34:56 PM
2022年7月1日 15時34分56秒に実行した場合
確認用サンプルプロシジャ
-* 日付時間フォーマット
-TYPE DATEHYYMDSA:&DATEHYYMDSA
-TYPE DATEHYYMDSa:&DATEHYYMDSa
-TYPE DATEHYYMDSB:&DATEHYYMDSB
-TYPE DATEHYYMDSb:&DATEHYYMDSb

-* 時間フォーマット
-TYPE DATEHHISA:&DATEHHISA
-TYPE DATEHHISa:&DATEHHISa
-TYPE DATEHHISB:&DATEHHISB
-TYPE DATEHHISb:&DATEHHISb