[Access 2016/2013/2010/2007]
AccessのDateDiff関数の使い方を紹介します。
スポンサーリンク
書式
DateDiff(単位, 日時1, 日時2, 週の開始曜日, 年の第1週)
2つの日時の間隔を返します。間隔とは日時1と日時2の間に指定した単位の「カウントの基準」(表A 参照)が何回あるかを表す数です。日時1と「カウントの基準」が一致する場合、日時1はカウントの対象になりません。
■戻り値の型:バリアント型 (内部処理形式 Long の Variant)
■引数
引数 | 指定 | 説明 |
---|---|---|
単位 interval | 必須 | 時間間隔の単位を 表A の文字列式で指定。「"」で囲んで指定すること |
日時1 date1 | 必須 | 開始日時を指定 |
日時2 date2 | 必須 | 終了日時を指定。日時1以前の日時も指定可能 |
週の開始曜日 firstdayofweek | 省略可 | 週の始まりの曜日を 表B の値で指定。引数単位に"ww"を指定したときの戻り値に影響する。省略した場合は、日曜日を週の始まりと見なす |
年の第1週 firstweekofyear | 省略可 | 年の第1週を 表C の値で指定。省略した場合は、1月1日を含む週を年の第1週と見なす |
■表A 引数 単位 の設定値
設定値 | 説明 | カウントの基準 |
---|---|---|
yyyy | 年 | 1月1日 |
q | 四半期 | 1月1日、4月1日、7月1日、10月1日 |
m | 月 | 毎月1日 |
y | 年間通算日 | 午前0時 |
d | 日 | 午前0時 |
w | 週日 | 日時1の曜日 (戻り値は週数) |
ww | 週 | 週の開始曜日 |
h | 時 | 0分 |
n | 分 | 0秒 |
s | 秒 | (戻り値は秒数) |
※ DateDiff関数では、"y"と"d"は同じ結果を返します。
■表B 引数 週の開始曜日 の設定値
値 | 定数 | 説明 |
---|---|---|
0 | vbUseSystem | NLS API(国別の環境をサポートする仕組み)の設定値 |
1 | vbSunday | 日曜日(既定値) |
2 | vbMonday | 月曜日 |
3 | vbTuesday | 火曜日 |
4 | vbWednesday | 水曜日 |
5 | vbThursday | 木曜日 |
6 | vbFriday | 金曜日 |
7 | vbSaturday | 土曜日 |
■表C 引数 年の第1週 の設定値
値 | 定数 | 説明 |
---|---|---|
0 | vbUseSystem | NLS API(国別の環境をサポートする仕組み)の設定値 |
1 | vbFirstJan1 | 1月1日を含む週(既定値) |
2 | vbFirstFourDays | 新しい年の少なくとも 4 日間を含む最初の週 |
3 | vbFirstFullWeek | 全体が新しい年に含まれる最初の週 |
使用例
使用例 | 戻り値 | 説明 |
---|---|---|
DateDiff("yyyy",#2016/12/31#,#2017/01/02#) | 1 | 「1月1日」が 1 回 |
DateDiff("yyyy", #2017/1/1#, #2017/12/1#) | 0 | 「1月1日」が 0 回 (日時1である2017/1/1はカウントされない) |
DateDiff("m", #2017/4/30#, #2017/8/3#) | 4 | 「1日」が 4 回 |
DateDiff("m", #2017/5/1#, #2017/8/3#) | 3 | 「1日」が 3 回(日時1である2017/5/1はカウントされない) |
DateDiff("d", #2017/5/1#, #2017/5/7#) | 6 | 「午前0時」が 6 回 |
DateDiff("d", #2017/5/7#, #2017/5/1#) | -6 | 「午前0時」が 6 回 |
DateDiff("w",#2017/12/01#,#2017/12/31#) | 4 | 「日時1である2017/12/1の曜日(金曜日)」が 4 回 |
DateDiff("ww",#2017/12/01#,#2017/12/31#) | 5 | 「週の開始曜日(日曜日)」が 5 回 |
DateDiff("d", Null, #2017/5/1#) DateDiff("d", #2017/5/1#, Null) DateDiff("d", Null, Null) |
Null | 日時1または日時2がNull値の場合、戻り値はNull値 |
メモ
ExcelのDATEDIF関数との違い
ExcelのDATEDIF関数は、2つの日時の「満」の時間間隔を返します。したがって、ExcelではDATEDIF関数の引数に生年月日と現在の日付を指定すると、満年齢が求められます。 一方、AccessのDateDiff関数は、2つの日時の間にある「カウントの基準」をカウントします。したがって、AccessではDateDiff関数の引数に生年月日と現在の日付を指定しても、満年齢は計算できません。
実践例
以下のページを参照してください。
スポンサーリンク