指定した時間間隔を追加した日付を含む バリアント (日付) を返します。
構文
DateAdd(interval, number, date)
DateAdd 関数には、次の引数があります。
| 引数 | 説明 |
|---|---|
interval |
必ず指定します。 追加する時間間隔である文字列式。 |
number |
必ず指定します。 追加する間隔の数を示す数値式。 未来の日付を取得することはプラスになる場合もあれば、過去の日付を取得する場合はネガティブになる場合があります。 |
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 値でない場合は、式を評価する前に、最も近い整数に丸められます。
注
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