SQLSERVER2000中
select dateadd(month,6,'2008-08-28')
select dateadd(month,6,'2008-08-29')
为什麽会返回同一天 2009-02-28
select dateadd(month,6,'2008-08-28')
select dateadd(month,6,'2008-08-29')
为什麽会返回同一天 2009-02-28
调试欢乐多
道理如上面的同学所说
呵呵,你再试下select dateadd(month,6,'2008-08-28')
select dateadd(month,6,'2008-08-29')
select dateadd(month,6,'2008-08-30')
select dateadd(month,6,'2008-08-31')
select dateadd(month,6,'2008-08-29')
只好返回2009-02-28。
一般來説DateAdd是不會修改返回日期的其它部分的,
除非返回的不是合法日期了。
DateAdd(month,'2008-08-31 23:59:59','2008-09-01 00:00:00')=1
實際上只隔了1秒,你不能說他的証就過期了吧!
建議以天來計算有效期。
記得以前上大學的時候幫學校圖書館做的就是這麽做的,一個月就是30天,一年就是365天。
幾個月就用30天乘幾,幾年就用365天乘幾。