DateDiff 関数

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

いくつかの例を参照する

構文

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

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

引数

説明

interval

必ず指定します。引数 date1 と引数 date2 の間の差異を計算するために使用する、時間間隔を表す文字列式を指定します。

date1 date2

必ず指定します。バリアント型 (内部処理形式 DateVariant) の値を指定します。計算に使用する 2 つの日付です。

firstdayofweek

省略可能です。週の最初の曜日を指定する定数です。指定しない場合は、日曜日が適用されます。

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 2010, Access 2007, Access 2013 Developer, Access 2013, Access 2010 Developer, Access 2007 Developer



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

はい いいえ

どのようにしたら改善できるでしょうか?

255 残りの文字数

お客様のプライバシーを保護するため、フィードバックには連絡先情報を含めないでください。 レビューしてください プライバシー ポリシー

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

サポート リソース

言語の変更