SELECT CAST(sale_date AS datetime) + 365 AS sale_date FROM sale_card where card_id='"+sale_cardVO.getCard_id()+"'
sale_date 的时间为 2007-3-15 在这个字段加一年(365天)后时间变为03 15 2008 12:0,怎样使加后的时间的格式为2008-3-15,或有其它方法使时间为2008-3-15
sale_date 的时间为 2007-3-15 在这个字段加一年(365天)后时间变为03 15 2008 12:0,怎样使加后的时间的格式为2008-3-15,或有其它方法使时间为2008-3-15
dateadd(year,1,sale_date) --sale_date 加1年
要顯示格式的話,用convert()轉換,參考book online
select convert(varchar(10),CAST(getdate() AS datetime)+365,120 )--加一年
select convert(varchar(10),dateadd(year,1,CAST(getdate() AS datetime)),120)
select convert(varchar(10),getdate(),120 )--加一年
select convert(varchar(10),dateadd(year,1,getdate()),120)
set @dt = '2007-03-15'select convert(varchar(10),dateadd(year,1,@dt),120) as 明年今天明年今天
----------
2008-03-15(所影响的行数为 1 行)加365是有问题的,如果遇到润年就是366了.
----------------------------------------
这样计算下一年的同一天,并不准确(因为有些年是366天的)所以使用DATEADD函数来实现此功能
DATEADD(year, 1, sale_date ) 在原日期上增加一年
DATEADD(Month, 1, sale_date ) 在原日期上增加一月
DATEADD(day, 1, sale_date ) 在原日期上增加一天所以 CAST(sale_date AS datetime) + 365 也可以这样写
1.DATEADD(year, 1, sale_date )
2.DATEADD(Month, 12, sale_date )
3.DATEADD(day, 365, sale_date )
如果只加三个月或五个月怎样加呢,请回复!
-------------
類似的DateAdd(mm, 3, 日期字段)
DateAdd(mm, 5, 日期字段)看看DateAdd的用法吧