定義
返回包含一個日期的 Variant (Date),這一日期還加上了一段時間間隔。
表達式 DateAdd(timeinterval,number,date)
描述
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 日加上一個月:
DateAdd(m, 1, 31-Jan-95)
上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,則由於 1996 年是閏年,返回值是 1996 年 2 月 29 日。
如果計算的日期超前 100 年(減去的年度超過 date 中的年份),就會導致錯誤發生。
如果 number 不是一個 Long 值,則在計算時取最接近的整數值來計算。
注意 DateAdd 返回值的格式由 Control Panel設定決定,而不是由傳遞到date 參數的格式決定。
附:示例
number
是用來增加 datepart 的值。數值表達式,設定一個日期所加上的一段期間,可為正值或負值,正值表示加(結果為 >date 以後的日期),負值表示減(結果為 >date 以前的日期)。
如果指定一個不是整數的值,則將廢棄此值的小數部分。例如,如果為 datepart 指定 day,為 number 指定 1.75,則 date 將增加 1。
date
是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式。有關指定日期的更多信息,請參見 datetime 和 smalldatetime。
如果您只指定年份的最後兩位數字,則小於或等於"兩位數年份截止期"配置選項的值的最後兩位數字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049(默認),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數的年份。
返回類型
返回 datetime,但如果 date 參數是 smalldatetime,返回 smalldatetime。
示例
此示例列印出 pubs 資料庫中標題的時間結構的列表。此時間結構表示當前發布日期加上 21 天。
USE pubs
GO
SELECT DATEADD(day, 21, pubdate) AS timeframe
FROM titles
GO
下面是結果集:
timeframe
---------------------------
Jul 3 1991 12:00AM
Jun 30 1991 12:00AM
Jul 21 1991 12:00AM
Jul 13 1991 12:00AM
Jun 30 1991 12:00AM
Jul 9 1991 12:00AM
Mar 14 1997 5:09PM
Jul 21 1991 12:00AM
Jul 3 1994 12:00AM
Mar 14 1997 5:09PM
Nov 11 1991 12:00AM
Jul 6 1991 12:00AM
Oct 26 1991 12:00AM
Jul 3 1991 12:00AM
Jul 3 1991 12:00AM
Nov 11 1991 12:00AM
Jul 3 1991 12:00AM
Jul 3 1991 12:00AM
(18 row(s) affected)
MYSQL上套用實例:
select * from format where add_date >="dateadd('dd',-1,'2008-05-19')"
取出2008年5月18日以後的所有數據。
ACCESS上套用實例:
select * from format where add_date >=dateadd('d',1,#2008/05/19#)
取出2008年5月20日以後的所有數據。
函式示例
本示例先取得一個日期,再用 DateAdd 函式顯示未來數月後的日期。
Dim FirstDate As Date ' 聲明變數。Dim IntervalType As StringDim Number As IntegerDim MsgIntervalType = "m" ' "m"指定以“月份”作為間隔。FirstDate = InputBox("Enter a date")Number = InputBox("Enter number of months to add")Msg = "New date: " & DateAdd(IntervalType, Number, FirstDate)MsgBox Msg