8桁の数字をyyyy/mm/ddへ変換する

こんにちは。伊川(@naonaoke)です。

今回は、選択クエリを使って、文字列をyyyy/mm/ddへ、変換します。

クエリは、あらゆるデータを、お好みの型に変換できます。

問題提起

 

(株)IKAWAの阿久 世子男(アク セスオ)は、8桁の数字をyyyy/mm/ddに変更したいと考えています。例)20190103⇒2019/01/03
クエリを勉強していますが、どのようにSQL文を書くのか分からないです。また、yyyy/mm/ddに変更したデータを元に、テーブルも更新したいと考えています。
どうしたらいいでしょうか?

解決策

回答
・Format関数を使う
・Cdate関数を使う。
・更新クエリを利用して、一気に更新する。

 

8桁の文字列を、Format関数で変更する


上の図のように、ランダムの数字が入力されています。

この文字列をyyyy/mm/ddに変更するには、Format関数を使います。

Format関数は、頻繁に使う関数

上の表のように、こんなに、Format関数は、たくさんのバリエーションがあります。

文字説明
:時刻の区切り記号1970年1月1日
/日付の区切り記号2017年9月1日
cdddddおよびtttttの書式で表した日付と時刻を、日付、時刻の順で返す2017年9月1日
d日付1桁の場合、先頭に0は付けない1~31
dd日付1桁の場合、先頭に0を付ける01~31
ddd英語(省略形)表記の曜日Sun~Sat
aaa日本語(省略形)表記の曜日日~土
dddd英語表記の曜日Sunday~Saturday
aaaa日本語(省略形)表記の曜日日曜日~土曜日
ddddd年、月、日を含むyyyy/mm/dd形式の日付2017年9月1日
dddddd年、月、日を含むmmmm dd, yyyy形式の日付September 01 2017
w曜日を表す数値日曜日が 1、土曜日が 7
wwその日が一年のうちで何週目かを表す数値1~54
m月1桁の場合、先頭に0は付けない1~12
mmm英語(省略形)表記の月の名前Jan~Dec
mmmm英語表記の月の名前January~December
oooo日本語表記の月の名前1月~12月
q1年のうちで何番目の四半期かを表す数値1~4
g年号の頭文字M、T、S、H
gg年号の頭文字の漢字1文字明、大、昭、平
ggg年号明治、大正、昭和、平成
e年号に基づく和暦1桁の場合、先頭に0は付けない1
ee年号に基づく和暦
y1年のうちで何日目かを表す数値1~366
yy西暦年の下2桁の数値00~99
yyyy西暦年の4桁の数値100~9999
h時間1桁の場合、先頭に0は付けない0~23
hh時間
1桁の場合、先頭に0は付ける00~23
n分1桁の場合、先頭に0は付けない0~59
nn
1桁の場合、先頭に0を付ける00~59
s秒1桁の場合、先頭に0は付けない0~59
ss
1桁の場合、先頭に0を付ける00~59
ttttth:nn:ss形式の時刻1970年1月1日
AM/PM時刻が正午以前の場合AM正午~午後11時59分の場合PM
am/pm時刻が正午以前の場合am正午~午後11時59分の場合pm
A/P時刻が正午以前の場合A正午~午後11時59分の場合P
a/p時刻が正午以前の場合a正午~午後11時59分の場合p
また、ExcelのVBAにも使えます。

クエリにyyyy/mm/ddへ変更する

スポンサーリンク



上の図の、赤枠のところに、変換する式を入力します。


上の図のようになります。

※¥マークがうまく、貼り付けることができなので、図で、貼っていますのでコピペできません。


これで変更完了です。

Cdate関数を使って、日付型へ変更します。



ここがポイント
Function8.png
先頭にCdate関数をつけました。
これで、日付/時刻型に変更できました。Format関数だけでも、日付/時刻型になるのですが、後々、Dateadd関数などを利用して計算する場合があります。その時に、Cdate関数を利用しないと、エラーになったことがありましたので、伊川はCdate関数も利用するようになりました。

 

スポンサーリンク

変更したデータを追加、更新する

変更したデータを使って、テーブルを更新します。

ACCESSを利用するのであれば、コピペのような技は使わず、クエリを使いましょう。

更新クエリ


テーブルのデザインビューであらかじめ、日時変更というフィールドを追加しておきましょう。

 


上の図のように設定します。

主キーはIDです。

この場合のIDはオートナンバー型なので、テーブルのIDと、クエリのIDには、絶対にズレはありません。

このようなときこそ、更新クエリの出番です。


これで完成しました。

まとめ

データベースを作成するときは、あらかじめ、抽出しやすいデータ型で入力することが肝心です。

しかし、もし、データ型が違っていても、クエリで変更することが可能です。

クエリは、重要なので、ぜひ、スキルとして、身につけましょう。

今回のサンプルファイルには練習用のファイルもいれましたので、何度も練習をして、スキルアップをめざしましょう。

サンプルファイルはNo29です
スポンサーリンク

Twitterでフォローしよう

おすすめの記事