スポンサーリンク

2007-10-17

Tips95 - SQL文 日付の加算・減算を行う。 DateAdd関数

構文は、DateAdd(interval, number, date) になります。
intervalは時間間隔を表す文字列式を指定します。
ここに時間を指定することで、時・分・秒の時刻も計算できます。
numberは時間間隔の数を表す数値を指定します。加算は正の数を指定し、減算は負の数を指定します。
dateは計算対象の日付を指定します。

intervalは下記の文字で指定します。
yyyy : 年
q : 四半期
m : 月
y : 年間通算日(間の日数)
d : 日
w : 週日
ww : 週
h : 時
n : 分
s : 秒

日付に1日プラスした使用例
dim SQL as String
dim rs As Recordset
SQL = "SELECT dateadd('d',1,日付フィールド) FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)

実行結果
・年
DateAdd("yyyy", 1, "2007/01/01") の場合 2007/01/01
DateAdd("yyyy", -1, "2007/01/01") の場合 2006/01/01

・四半期
DateAdd("q", 1, "2007/01/01") の場合 2007/04/01
DateAdd("q", -1, "2007/01/01") の場合 2006/10/01

・月
DateAdd("m", 1, "2007/01/01") の場合 2007/02/01
DateAdd("m", -1, "2007/01/01") の場合 2006/12/01

・年間通算日
DateAdd("y", 1, "2007/01/01") の場合 2007/01/02
DateAdd("y", -1, "2007/01/01") の場合 2006/12/31

・日
DateAdd("d", 1, "2007/01/01") の場合 2007/01/02
DateAdd("d", -1, "2007/01/01") の場合 2006/12/31

・週日
DateAdd("w", 1, "2007/01/01") の場合 2007/01/02
DateAdd("w", -1, "2007/01/01") の場合 2006/12/31

・週
DateAdd("ww", 1, "2007/01/01") の場合 2007/01/08
DateAdd("ww", -1, "2007/01/01") の場合 2006/12/25

・時
DateAdd("h", 1, "2007/01/01") の場合 2007/01/01 1:00:00
DateAdd("h", -1, "2007/01/01") の場合 2006/12/31 23:00:00

・分
DateAdd("n", 1, "2007/01/01") の場合 2007/01/01 1:00:00
DateAdd("n", -1, "2007/01/01") の場合 2006/12/31 23:59:00

・秒
DateAdd("s", 1, "2007/01/01") の場合 2007/01/01 1:00:00
DateAdd("s", -1, "2007/01/01") の場合 2006/12/31 23:59:59