Accessの日付処理の例を見てみる

Accessで処理するにあたり、日付のコントロールが必要な場面が多くあります。

例えば「”12月”の売上を知りたい」とか「”過去3年度”の売上比較をしたい」などです。

これくらいであれば、抽出条件を”201712″とか、”>=201404”とか入力すれば良いのですが、「月末までの売り上げを知りたい」とか「11月の前年比較を知りたい」となってくると厄介になってきます。

ここでは想定される場面と必要な処理内容をご紹介します。

例1:2018年1月の売上が知りたい

(文字列6桁の場合)

フィールドの形式にもよりますが、例えば「201712」とか「201801」などの文字列6桁の形式と仮定しましょう。

これを「YYYYMM」という言い方をします。(Y=year、M=month)

その場合、2018年1月の抽出をするのは上記のように「”201801″」で抽出できます。

ワンポイント:実際の入力は省略できる

実際に入力する際は「201801」だけで十分です。

フィールドアウト(入力している項目から別の項目に移動する時)で「”」が自動でくっつきます。

地味ですが、使いこなせると便利です。

(文字列8桁の場合)

「20171215」とか「20180103」などの8桁の形式の場合、少し勝手が異なります。

これを「YYYYMMDD」という言い方をします。

その場合、2018年1月の抽出をするのは上記のように「Like “201801*”」で抽出できます。

先と同じように実際の入力は「201801*」だけで、「Like」と「”」は自動で付与されます。

ワンポイント:ワイルドカードをつかいこなそう

「*」はワイルドカードと言って、全ての数字・文字の代わりとなります。

トランプのジョーカーのことを、ワイルドカードと言いますよね?
トランプのジョーカーは、他のどのカードの代わりも担うことが出来ることが多いですが、それと同じです。

例えば今例のように「201801*」と書くことで、「201801××」と読み替えることが出来る、ということです。

例2:2014年4月~2016年12月までの売上が知りたい

(文字列6桁の場合)

Between A and B という形で抽出を行いましょう。
英語の通り、AとBの間、という意味です。

ここでは201404~201612の間を抽出します。

(文字列8桁の場合)

同様に
Between “20140401” and “20161231”
で抽出を行いましょう。

ワンポイント:Betweenとワイルドカードの組み合わせに注意しよう

ここで気を付けなければいけないのは、
 Between “201404*” and “201612*”
としてしまわないことです。

ワイルドカードはBetweenを併用した場合、”最小”として認識をします。

この”最小”は、上図のように00よりももっと小さな値として扱われます。

したがって、
 Between “201404*” and “201612*”
として記載した場合、2014年4月はすべて当て嵌まりますが、2016年12月は1日を含めて、すべて除外されてしまいます。

上手く使いこなせれば良いのですが、実務上は忘れがちになるので、Betweenを用いた場合は、桁数の最後まできちんと記載することにした方がミスが少なく済みます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です