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

解决方案 »

  1.   

    convert(varchar(10),CAST(sale_date AS datetime)+365,120 )
      

  2.   

    或許你只要
    dateadd(year,1,sale_date)  --sale_date 加1年
    要顯示格式的話,用convert()轉換,參考book online
      

  3.   

    --加365天
    select convert(varchar(10),CAST(getdate() AS datetime)+365,120 )--加一年
    select convert(varchar(10),dateadd(year,1,CAST(getdate() AS datetime)),120)
      

  4.   

    --加365天
    select convert(varchar(10),getdate(),120 )--加一年
    select convert(varchar(10),dateadd(year,1,getdate()),120)
      

  5.   

    declare @dt as datetime
    set @dt = '2007-03-15'select convert(varchar(10),dateadd(year,1,@dt),120) as 明年今天明年今天       
    ---------- 
    2008-03-15(所影响的行数为 1 行)加365是有问题的,如果遇到润年就是366了.
      

  6.   

    CAST(sale_date AS datetime) + 365 
    ----------------------------------------
    这样计算下一年的同一天,并不准确(因为有些年是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 )
      

  7.   

    xfyyw() ( ) 信誉:100    Blog  2007-03-15 09:09:50  得分: 0  
     
     
       如果只加三个月或五个月怎样加呢,请回复!
      
     -------------
    類似的DateAdd(mm, 3, 日期字段)
    DateAdd(mm, 5, 日期字段)看看DateAdd的用法吧