DateAdd 関数

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

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

構文

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

関連項目

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