スキップしてメイン コンテンツへ

DateDiff 関数

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

構文

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

DateDiff 関数の構文には、次の引数があります。

ヒント: Access 2010 では、式ビルダーで IntelliSense を使用できるので、式に必要な引数を確認することができます。 

引数

説明

interval

必ず指定します。 date1date2 の時間間隔の計算に使用する時間単位を表す文字列式を指定します。

date1date2

必須。 Variant (Date)。 計算の対象となる 2 つの日付を指定します。

firstdayofweek

省略可能です。 週の始まりの曜日を表す定数です。 省略すると、日曜日を指定したものと見なされます。

firstweekofyear

省略可能。 年の第 1 週を指定する定数です。 省略すると、1 月 1 日を含む週が第 1 週と見なされます。

設定

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

設定

説明

yyyy

q

四半期

m

y

年間通算日

d

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 つの日付間の日数や、今日から年末までの週数を計算することができます。

日付1と 日付 2 の間の日数を計算するには、year ("y") または day ("d") のいずれかを使用します。 Intervalが Weekday ("w") の場合、 DateDiffは2つの日付の間の週の数を返します。 Date1が月曜日に当たる場合、 DateDiff日付2 まで月曜日の数をカウントします。 日付2はカウントしますが、 date1はカウントしません。 Intervalが Week ("ww") の場合、 DateDiff関数は、2つの日付の間の週間カレンダーの週数を返します。 これは、 date1日付2 の間の日曜日の数をカウントします。 DateDiffは、日曜日になった場合は日付2 回カウントされます。ただし、日曜日になった場合でも、 date1はカウントされません。

date1 date2 よりも後の時点を示す場合、DateDiff 関数は負の数を返します。

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

date1 または date2 が日付リテラルの場合、指定した年はその日付の一部として恒久的に保存されます。 ただし、date1 または date2 が二重引用符 (" ") で囲まれていて、年を省略した場合、date1 または date2 の式が評価されるたびに、現在の年がコードに挿入されます。 これにより、別の年でも使用できるコードを記述することができます。

連続する年の 12 月 31 日と 1 月 1 日を比較すると、1 日が経過しただけの場合でも、年 ("yyyy") の DateDiff は 1 を返します。

注: Calendar プロパティの設定がグレゴリオ暦の場合、date1date2 ではグレゴリオ暦の日付を指定する必要があります。 カレンダーがイスラム暦の場合は、イスラム暦で日付を指定する必要があります。

DateDiff クエリの例

結果

ProductSales の Expr1 として、[DateDiff ("yyyy", #01/01/01 #, [DateofSale]) を選択します。

Date2 と Date1 の差を返します (Date1 は "年" の値として、"日付 1" と "日付 2" を最も新しいものとして考える)。 結果: フィールド "DateofSale" と日付 "01/01/2010" の値の差は、"年" の数値として変化します。

ProductSales の DaysSinceSale として、[DateDiff ("q", [DateofSale], Date ()) を選択します。

システム日付と "DateofSale" を "四半期" の数値として (カレンダー年度に基づく)、列 "DaysSinceSale" に表示します。 システムの日付と "DateofSale" の値の差を "Months" として返し、列 "DaysSinceSale" に表示されます。

ProductSales の DaysSinceSale として、[DateDiff ("y", [DateofSale], Date ()) を選択します。

システム日付と "DateofSale" の差を "Days" として返し、列 "DaysSinceSale" に表示されます。

ProductSales の DaysSinceSale として、[DateDiff ("d", [DateofSale], Date ()) を選択します。

システム日付と "DateofSale" の差を "Days" として返し、列 "DaysSinceSale" に表示されます。

ProductSales の DaysSinceSale として、[DateDiff ("w", [DateofSale], Date ()) を選択します。

システム日付と "DateofSale" の差を ' 平日 ' 列の数値として返し、列 "DaysSinceSale" に表示されます。 "DateofSale" が月曜日に当たる場合、DateDiff はシステムの日付まで月曜日の数をカウントします。 "DateofSale" の値はカウントしますが、システムの日付はカウントします。

ProductSales から DaysSinceSale として、DateDiff ("ww", [DateofSale], Date ()) を選択します。

システム日付と "DateofSale" の値の差を "カレンダー週" の数値として返し、列 "DaysSinceSale" に表示します。 "DateofSale" と "システム日付" の間の日曜日の数をカウントします。 日曜日になるとシステムの日付がカウントされます。ただし、日曜日になったとしても、"DateofSale" はカウントされません。

ProductSales の DaysSinceSale として、[DateDiff ("h", [DateTime], Date ()) を選択します。

システム日付と "DateTime" の差を ' Hours ' 列の値として返し、列 "DaysSinceSale" に表示します。

ProductSales の DaysSinceSale として、[DateDiff] ("n", [DateTime], Date ()) を選択します。

システムの日付と "DateTime" の間の差を "分" として返し、列 "DaysSinceSale" に表示します。

ProductSales の DaysSinceSale として、[DateDiff ("s", [DateTime], Date ()) を選択します。

システム日付と "DateTime" の間の差を "秒" として返し、列 "DaysSinceSale" に表示します。

数式の例

式で DateDiff 関数を使う     DateDiff関数は、式を使用できる場所であればいつでも使うことができます。 たとえば、顧客の注文を満たすために使用するフォームがあるとします。 "受注" テーブルには、顧客が注文を受け取る日付を含む "ReceiveBefore" という名前のフィールドがあります。 フォーム上のテキストボックスでDateDiff関数を使用して、注文が出荷されるまでの残り日数を表示することができます。

出荷までに 10 日間かかる場合、テキスト ボックスの [コントロール ソース] プロパティに次のように設定します。

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

フォーム ビューでフォームを開くと、テキスト ボックスに出荷までの残り日数が表示されます。 納品日までの日数が 10 日未満の場合、テキスト ボックスは負の数であり、即時に出荷する場合、何日後かを指定します。

VBA の例

VBA コードで DateDiff 関数を使う    

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

Dim TheDate As Date    ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

注:  このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。 私たちの目的は、このコンテンツがお客様の役に立つようにすることです。 情報が役に立ったかどうか、ご意見をお寄せください。 参考までに、こちらから英語の記事をお読みいただけます。

関連項目

適切な日付関数を選択する

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×