目次
8桁の数字をyyyy/mm/ddへ変換する
こんにちは。伊川(@naonaoke)です。
今回は、選択クエリを使って、文字列をyyyy/mm/ddへ、変換します。
クエリは、あらゆるデータを、お好みの型に変換できます。
問題提起
クエリを勉強していますが、どのようにSQL文を書くのか分からないです。また、yyyy/mm/ddに変更したデータを元に、テーブルも更新したいと考えています。
どうしたらいいでしょうか?
解決策
・更新クエリを利用して、一気に更新する。
8桁の文字列を、Format関数で変更する
上の図のように、ランダムの数字が入力されています。
この文字列をyyyy/mm/ddに変更するには、Format関数を使います。
Format関数は、頻繁に使う関数
上の表のように、こんなに、Format関数は、たくさんのバリエーションがあります。
文字 | 説明 | 例 |
---|---|---|
: | 時刻の区切り記号 | 1970年1月1日 |
/ | 日付の区切り記号 | 2017年9月1日 |
c | dddddおよび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月 |
q | 1年のうちで何番目の四半期かを表す数値 | 1~4 |
g | 年号の頭文字 | M、T、S、H |
gg | 年号の頭文字の漢字1文字 | 明、大、昭、平 |
ggg | 年号 | 明治、大正、昭和、平成 |
e | 年号に基づく和暦1桁の場合、先頭に0は付けない | 1 |
ee | 年号に基づく和暦 | |
y | 1年のうちで何日目かを表す数値 | 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 | |
ttttt | h: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 | ー |
クエリにyyyy/mm/ddへ変更する
上の図の、赤枠のところに、変換する式を入力します。
上の図のようになります。
※¥マークがうまく、貼り付けることができなので、図で、貼っていますのでコピペできません。
これで変更完了です。
Cdate関数を使って、日付型へ変更します。
先頭にCdate関数をつけました。
これで、日付/時刻型に変更できました。Format関数だけでも、日付/時刻型になるのですが、後々、Dateadd関数などを利用して計算する場合があります。その時に、Cdate関数を利用しないと、エラーになったことがありましたので、伊川はCdate関数も利用するようになりました。
変更したデータを追加、更新する
変更したデータを使って、テーブルを更新します。
ACCESSを利用するのであれば、コピペのような技は使わず、クエリを使いましょう。
更新クエリ
テーブルのデザインビューであらかじめ、日時変更というフィールドを追加しておきましょう。
上の図のように設定します。
主キーはIDです。
この場合のIDはオートナンバー型なので、テーブルのIDと、クエリのIDには、絶対にズレはありません。
このようなときこそ、更新クエリの出番です。
これで完成しました。
まとめ
データベースを作成するときは、あらかじめ、抽出しやすいデータ型で入力することが肝心です。
しかし、もし、データ型が違っていても、クエリで変更することが可能です。
クエリは、重要なので、ぜひ、スキルとして、身につけましょう。
今回のサンプルファイルには練習用のファイルもいれましたので、何度も練習をして、スキルアップをめざしましょう。