如何对选择的月份加3个月,并且满12个的就往后进一年。
如:
select name, date from employees
我要对这个date进行处理,应该怎样处理?
------解决方案--------------------select name, dateadd(mm,3,date) as date from employees
------解决方案--------------------dateadd(month,3,[date])
------解决方案--------------------用DataAdd()函数。
select dateadd(mm, 3, getdate())
------解决方案--------------------語法
DATEADD ( datepart , number, date )
引數
datepart
是指定日期中那一個部份要傳回新值的參數。下表列出了 Microsoft® SQL Server™ 所能辨認的日期部份及縮寫。
Datepart 縮寫
---------------
Year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond 微秒
number
datepart 的遞增值。 如果您指定非整數的值,將截斷該值的小數部份。 例如,如果您指定 datepart為 day 且 number 為1.75,則 date 增加 1。
date
是一個傳回 datetime 或 smalldatetime 值或日期格式字元字串的運算式。如需關於指定日期的詳細資訊,請參閱 datetime 與 smalldatetime。
如果只指定年份的後面兩位數字,那麼小於或等於 two digit year cutoff 組態選項值最後兩位數字的值,會與截止年份位於相同世紀。大於此選項值最後兩位數字的值,其世紀為截止年份的前一個世紀。例如,若 two digit year cutoff 為 2049 (預設值),那麼 49 會被視為 2049,2050 則會被視為 1950。為了避免發生混淆,請使用四位數字的年份。
傳回型別
傳回 datetime,但若 date 引數是 smalldatetime,則為 smalldatetime。
------解决方案--------------------DATEADD
在向指定日期加上一段时间的基础上,返回新的 datetime 值。
语法
DATEADD ( datepart , number, date )
参数
------解决方案--------------------select getdate() as curr_date,dateadd(mm,3,getdate()) as future_date
-------------------------------------------------
/*
curr_date future_date
----------------------------- -------------------------
2007-02-07 14:30:56.410 2007-05-07 14:30:56.410
*/
------解决方案--------------------up