Accessにおける日付/時刻型・Format関数を用いた書式変換(元号表記の仕方他)

クエリ

Accessテーブルには「日付/時刻型」と呼ばれるデータ型があり、その名の通り日付、時刻を取り扱う際に定義するデータ型になります。日付/時刻型は、時間情報を取り扱う際に重宝されます。また、Format関数と組み合わせることで、その有用性は非常に高いものになります。

スポンサーリンク

日付/時刻型の内部データをFormat関数で確認

日付/時刻型は、日付の情報と時刻の情報を持つことになりますが、日付または時刻の情報を省略すると、デフォルトでは「1899年12月30日 0:00:00」がセットされます。試しに、テーブルを作成して、「日付」と「時刻」フィールドを作成しましょう。そして、これらのデータ型を日付/時刻型にしてください。
テーブルの作成後、以下のレコードを登録しましょう。

日付時刻
2019/12/0211:30:00
2019/04/012019/04/01 11:30:00
1985/04/0111:30:00
図1 日付/時刻型フィールドの作成及びテストデータ登録

図1に示すように、日付/時刻型では、日付だけ、時刻だけ、または日付と時刻を組み合わせたデータを登録することができます。それでは、各レコードの日付または時刻が見えていないところにはどのようなデータが入っているかを確認してみましょう。

クエリを作成し、「テーブルの追加」で先ほど作成したテーブルを追加してください。さらに、【フィールド】及び【テーブル】項目に次のように入力してください。
1列目: フィールド・・・日付、 テーブル・・・先ほど作成したテーブル名
2列目: フィールド・・・時刻、 テーブル・・・先ほど作成したテーブル名
3列目: フィールド・・・日付フィールドの全容: Format([日付],”yyyy/mm/dd hh:nn:ss”)
4列目: フィールド・・・時刻フィールドの全容: Format([時刻],”yyyy/mm/dd hh:nn:ss”)

図2 日付/時刻型のデータ変換

ここで、Format関数は次のように表されます。

Format(Expression, [Format], [FirstDayOfWeek], [FirstWeekOfYear])
Expression: 任意の有効な式を入力するものでフィールド等を指定します。(省略不可)
Format: ユーザー定義の書式指定。(省略可能)
FirstDayOfWeek: 週の最初の曜日を指定する定数。(省略可能)
FirstWeekIfYear: 年内で、最初の週を指定する定数。(省略可能)

日付/時刻型のデータ型に対してFormat関数の書式指定としては、次に紹介するものを良く使います。(Format関数の[Format]に入力する書式です。)

“yyyy″: 西暦を4桁で表示。
“yy”: 西暦を下2桁で表示。
“ggge”: 元号で表示。
“mm”: 月を2桁で表示。例えば、1月は「01」と表示される。
“m”: 月を1桁で表示。例えば、1月は「1」と 表示される。
  (10月以降は「10」等で表示。 )
“dd”: 日を2桁で表示。例えば、5日は「05」と表示される。
“d”: 日を1桁で表示。例えば、5日は「5」と表示 される。
  (10日以降は「10」等と表示。)
“hh”: 時間を2桁で表示。※ “h”とすれば1桁表示。
“nn”: 分を2桁で表示。※ “n”とすれば1桁表示。
“ss”: 秒を2桁で表示。※ “s”とすれば1桁表示。

Format関数は数値型に対しても有効な関数ですが、それはまた別の機会に紹介したいと思います。

さて、図2で作成したクエリを実行してみてください。3列目と4列目にそれぞれ「日付」と「時刻」フィールドの情報がすべて反映されていると思います。日付だけを扱う場合、または時刻だけを扱う場合は、それぞれ時刻と日付を省略したデータ入力が可能ですが、日付も時刻もデータ処理で必要な場合はデフォルト値が登録されますので、気を付けてください。

図3 日付/時刻型のデータ

その他の書式指定についても見ていきましょう。以下の通り、クエリでフィールドを設定します。
1列目: フィールド・・・日付、 テーブル・・・先ほど作成したテーブル名
2列目: フィールド・・・年: Format([日付],”yyyy”)
3列目: フィールド・・・月: Format([日付],”mm”)
4列目: フィールド・・・日: Format([日付],”dd”)
5列目: フィールド・・・元号: Format([日付], ”ggge\年m\月d\日”)

図4 Format関数による日付/時刻型の書式変換

図4に示すとおり、各書式指定の結果としてレコードが得られていると思います。元号についても「昭和」、「平成」及び「令和」が適用されています。

まとめ

今回は日付/時刻型について紹介をしました。データの抽出方法として、Format関数を用いると有用性は非常に高くなることを見ていただけたのではないでしょうか。また、年、月、日等を数値として扱いたい場合は、CInt関数やCLng関数とFormat関数を組み合わせることで実現できますので試してみてください。次回は、日付の加算・減算方法について紹介します。

スポンサーリンク

コメント

タイトルとURLをコピーしました