指定された時間間隔を加算した日付をバリアント型 (内部処理形式 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 分後の時刻を計算できます。
date に日数を追加するには、年間通算日 ("y")、日 ("d")、または平日 ("w") を使います。
DateAdd 関数が無効な日付を返すことはありません。 次の例では、1 月 31 日に 1 か月を追加します。
DateAdd("m", 1, "31-Jan-95")
この場合、DateAdd は、1995 年 2 月 31 日ではなく、1995 年 2 月 28 日を返します。 date が 1996 年 1 月 31 日の場合は、1996 が閏年なので 1996 年 2 月 29 日を返します。
計算された日付が 100 年より前になる場合 (つまり、日付 より多くの年数を減算した場合)、エラーが発生します。
number が Long 値ではない場合は、直近の整数に丸められてから評価されます。
注: DateAdd の戻り値の形式は、date 引数で渡された形式ではなく、コントロール パネルでの設定によって決まります。
注: カレンダー プロパティの設定がグレゴリオ暦の場合、date ではグレゴリオ暦の日付を指定する必要があります。 カレンダーがイスラム暦の場合は、イスラム暦で日付を指定する必要があります。 月の値が名前の場合、現在のカレンダー プロパティの設定と名前が一致している必要があります。 現在のカレンダー プロパティの設定での月名と矛盾する可能性を最小限に抑えるには、月を表す数値 (短い日付形式) を入力します。
クエリの例
式 |
結果 |
---|---|
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