DateAdd 関数

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

指定した時間間隔が追加された日付を含む バリアント型 (Date) を返します。

構文

DateAdd(interval, number, date)

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

引数 説明
interval 必ず指定します。 追加する時間間隔を表す文字列式。
number 必ず指定します。 追加する間隔の数を表す数値式。 将来の日付を取得することは肯定的であり、過去の日付を取得するには否定的な場合があります。
date 必ず指定します。 間隔が追加される日付を表すバリアント型 (Date) またはリテラル。

設定

interval引数には、次の設定があります。

設定 説明
yyyy
q 四半期
m
y 年間通算日
d
w 平日
ww
h
n
s

解説

DateAdd関数を使用して、日付から指定した時間間隔を追加または減算できます。 たとえば、 DateAdd を使用して、今日から 30 日、または 45 分後の時刻を計算できます。

dateに日数を追加するには、年の日 ("y")、日 ("d")、または平日 ("w") を使用できます。

DateAdd関数は無効な日付を返しません。 次の例では、1 月 31 日に 1 か月を追加します。

DateAdd("m", 1, "31-Jan-95")

この場合、 DateAdd は 31-Feb-95 ではなく 28-Feb-95 を返します。 dateが 31-Jan-96 の場合、1996 年は閏年であるため、29-Feb-96 が返されます。

計算された日付が 100 年より前の場合、つまり、 dateよりも多くの年を減算すると、エラーが発生します。

numberが Long 値でない場合、Access は式を評価する前に、最も近い整数に丸めます。

DateAddの戻り値の形式は、date引数に渡される形式ではなく、コントロール パネル設定によって決まります。

dateの場合、Calendar プロパティの設定がグレゴリオ暦の場合、指定された日付はグレゴリオ暦である必要があります。 カレンダーがイスラム暦の場合は、イスラム暦で日付を指定する必要があります。 月の値が名前の場合、名前は現在の Calendar プロパティ設定と一致している必要があります。 競合の可能性を減らすには、短い日付形式で月の数値を入力します。

クエリの例

Expression 結果
SELECT DateAdd("YYYY",1,[DateofSale]) AS Expr1 FROM ProductSales; [ DateofSale ] フィールドの日付値に 1 年を追加します。
SELECT DateAdd("YYYY",-1,[DateofSale]) AS Expr1 FROM ProductSales; DateofSale フィールドの日付値から 1 年を減算します。
SELECT DateAdd("d",10,[DateofSale]) AS NewDate FROM ProductSales; DateofSale フィールドの日付値に 10 日を加算し、結果をNewDate列に返します。
SELECT DateAdd("ww",-1,[DateofSale]) AS NewDate FROM ProductSales; DateofSale フィールドの日付値から 1 週間 (7 日) を減算し、結果をNewDate列に返します。

VBA の例

次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の操作の詳細については、「 Access VBA リファレンス」を参照してください。

次の使用例は、日付を入力として受け取り、 DateAdd 関数を使用して、指定した数か月後に一致する日付を表示します。

Dim FirstDate As Date    ' Declare variables.
Dim IntervalType As String
Dim Number As Integer
Dim Msg
IntervalType = "m"    ' "m" specifies months as interval.
FirstDate = InputBox("Enter a date")
Number = InputBox("Enter number of months to add")
Msg = "New date: " & _
    DateAdd(IntervalType, Number, FirstDate)
MsgBox Msg

関連項目

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