日期:2014-05-18  浏览次数:20456 次

如何对选择的月份加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