指定された時間間隔を加算した日付をバリアント型 (内部処理形式 Date の Variant) の値で返します。
構文
DateAdd(interval, number, date)
DateAdd 関数の引数は次のとおりです。
| 引数 | 説明 |
|---|---|
| interval | 必須。 追加する時間間隔の文字列式。 |
| number | 必ず指定します。 追加する間隔の数を表す数値式。 正の値 (将来の日付を取得する場合) または負の値 (過去の日付を取得する場合) を指定できます。 |
| date | 必須。 時間間隔を追加する日付を表す Variant (Date) またはリテラル。 |
設定
interval引数には、次の設定があります。
| 設定 | 説明 |
|---|---|
| yyyy | 年 |
| q | 四半期 |
| m | 月 |
| y | 年間通算日 |
| d | 日 |
| w | 平日 |
| ww | 週 |
| h | 時 |
| n | 分 |
| s | 秒 |
解説
DateAdd 関数を使うと、指定した時間間隔を日付に加算したり、日付から減算したりできます。 たとえば、DateAdd を使うと、今日から 30 日後の日付や、今から 45 分後の時刻を計算できます。
日付を日付に追加するには、Day of Year ("y")、Day ("d")、または Weekday ("w") を使用できます。
DateAdd 関数が無効な日付を返すことはありません。 次の例では、1 月 31 日に 1 か月を追加します。
DateAdd("m", 1, "31-Jan-95")
この場合、DateAdd は、1995 年 2 月 31 日ではなく、1995 年 2 月 28 日を返します。 date が 31-Jan-96 の場合、1996 年は閏年であるため、29-Feb-96 が返されます。
計算された日付が 100 年より前にある場合 (つまり、日付よりも多くの年を減算 すると)、エラーが発生します。
数値が Long 値でない場合、評価される前に最も近い整数に丸められます。
注
DateAdd の戻り値の形式は、date 引数で渡される形式ではなく、コントロール パネル設定によって決まります。
注
カレンダー プロパティの設定がグレゴリオ暦の場合、date ではグレゴリオ暦の日付を指定する必要があります。 カレンダーがイスラム暦の場合は、イスラム暦で日付を指定する必要があります。 月の値が名前の場合、現在のカレンダー プロパティの設定と名前が一致している必要があります。 現在のカレンダー プロパティの設定での月名と矛盾する可能性を最小限に抑えるには、月を表す数値 (短い日付形式) を入力します。
クエリの例
| 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