指定した時間間隔が追加された日付を含む バリアント型 (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