DateDiff 関数

指定した 2 つの日付の時間間隔数を表すバリアント型 (内部処理形式 LongVariant) の値を返します。

いくつかの例を参照する

構文

DateDiff(interval, date1, date2 [, firstdayofweek] [, firstweekofyear])

DateDiff 関数には、次の引数 (引数: アクション、イベント、メソッド、プロパティ、関数、またはプロシージャに必要な情報を提供する値のことです。)があります。

引数 説明
interval 必ず指定します。引数 date1 と引数 date2 の間の差異を計算するために使用する、時間間隔を表す文字列式 (文字列式: 1 つの文字列として評価される式。文字列を返す関数、バリアント型 (Variant) の文字列 (VarType 関数の文字列が 8) を返す関数、リテラル文字列、文字列定数、文字列変数、またはバリアント型 (Variant) 文字列などを組み合わせて構成できます。)を指定します。
date1date2 必ず指定します。バリアント型 (内部処理形式 DateVariant) の値を指定します。計算に使用する 2 つの日付です。
firstdayofweek 省略可能です。週の最初の曜日を指定する定数 (定数: 計算されない、したがって変化しない値。たとえば、210 という数値、"四半期売上" という文字列などは、定数です。式や式の計算結果の値は定数ではありません。)です。指定しない場合は、日曜日が適用されます。
firstweekofyear 省略可能です。年の第 1 週を指定する定数です。指定しない場合は、1 月 1 日を含む週が適用されます。

設定値

引数 (引数: アクション、イベント、メソッド、プロパティ、関数、またはプロシージャに必要な情報を提供する値のことです。) interval の設定値は次のとおりです。

設定値 説明
yyyy Year/年
q 四半期
m Month/月
y 年間通算日
d Day/日
w 週日
ww
h
n
s

引数 firstdayofweek の設定値は次のとおりです。

定数 説明
vbUseSystem 0 NLS API の設定を使用します。
vbSunday 1 日曜日 (既定値)。
vbMonday 2 月曜日。
vbTuesday 3 火曜日。
vbWednesday 4 水曜日。
vbThursday 5 木曜日。
vbFriday 6 金曜日。
vbSaturday 7 土曜日。
定数 説明
vbUseSystem 0 NLS API の設定を使用します。
vbFirstJan1 1 1 月 1 日を含む週 (既定値)。
vbFirstFourDays 2 新しい年の少なくとも 4 日間を含む最初の週。
vbFirstFullWeek 3 全体が新しい年に含まれる最初の週。

解説

DateDiff 関数を使用すると、指定した時間間隔が 2 つの日付の間にいくつ存在するかを判断できます。たとえば、DateDiff 関数を使用して、2 つの日付の間の日数や、今日から年末までの週の数を計算することができます。

引数 date1 と引数 date2 の間の日数を計算するには、年間通算日 ("y") または日 ("d") のいずれかを使用します。引数 interval が週日 ("w") の場合、DateDiff 関数は 2 つの日付の間の週数を返します。引数 date1 が月曜日の場合、DateDiff 関数は引数 date2 までの月曜日の数を計算します。引数 date2 までは数に入れますが、引数 date1 は数えません。引数 interval が週 ("ww") の場合は、DateDiff 関数は 2 つの日付の間の暦上の週数を返します。つまり、引数 date1 と引数 date2 の間の日曜日の数が計算されます。DateDiff 関数は、引数 date2 が日曜日の場合は引数 date2 を数に入れますが、引数 date1 は日曜日であっても数えません。

引数 date1 が引数 date2 より後の日付を表す場合、DateDiff 関数は負の数値を返します

引数 firstdayofweek は、時間間隔記号 "w" および "ww" を使用する計算値に影響します。

引数 date1 または引数 date2日付リテラル (日付リテラル: 記号 # で囲まれた有効な形式の文字列。有効な形式には、コードの国別情報の設定で指定された形式またはユニバーサル日付形式があります。)の場合、指定した年がその日付の固定部分になります。ただし、引数 date1 または引数 date2 が二重引用符 (" ") で囲まれている場合は、年を省略すると、引数 date1 または引数 date2 の式が評価されるたびに、現在の年がコードに挿入されます。これにより、他の年で使用可能なコードを記述することができます。

連続した年の 12 月 31 日と 1 月 1 日を比較する場合、年 ("yyyy") を指定した DateDiff 関数は、1 日しか経過していなくても 1 を返します。

 メモ    引数 date1 と引数 date2 は、Calendar プロパティの設定がグレゴリオ暦の場合、提供する日付はグレゴリオ暦にする必要があります。イスラム暦の場合、提供する日付はイスラム暦にする必要があります。

使用例

式で DateDiff 関数を使用する     式を使用できる場所では、DateDiff 関数を使用できます。たとえば、得意先の受注の実現に使用するフォームがあるとします。[Orders] テーブルには、得意先が注文を受け取る必要がある納期を格納する ReceiveBefore という名前のフィールドがあります。フォームのテキスト ボックスで DateDiff 関数を使用すると、注文を出荷するまでに残された日数を表示できます。

注文の出荷に 10 日かかるものとして、テキスト ボックスの "コントロール ソース" プロパティを次のように設定します。

=DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10

フォーム ビューでフォームを開くと、テキスト ボックスに注文の出荷までに残された日数が表示されます。得意先が注文を受け取る納期まで 10 日を切っている場合、テキスト ボックスの数字は負となり、即座に出荷したときの注文の遅延日数を示します。

VBA コードで DateDiff 関数を使用する    

 メモ   次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。VBA の使用方法の詳細については、[検索] の横にある一覧の [開発者用リファレンス] をクリックし、検索ボックスに検索する語句を入力してください。

この例では、DateDiff 関数を使用して、特定の日付から今日までの日数を表示します。

Dim TheDate As Date    ' 変数を宣言します。
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg
 
 
適用対象:
Access 2007