表 table 2列  id(数字型),indate(日期型)
数据如下1  2013-08-08 12:00:00
2  2013-08-08 11:00:00想把 2013-08-08 改成2013-09-09
也就是要改变日期 但是不改变时间 得到如下结果
1  2013-08-09 12:00:00
2  2013-08-09 11:00:00
请教这个sql语法怎么写?谢谢

解决方案 »

  1.   

    CREATE TABLE #temp (id INT, dt DATETIME)
    INSERT #temp SELECT 1, '2013-08-08 12:00:00' UNION ALL SELECT 1, '2013-08-08 11:00:00'UPDATE #temp
    SET dt = DATEADD(DAY, 1, DT)SELECT * FROM #temp
    /*
    id dt
    1 2013-08-09 12:00:00.000
    1 2013-08-09 11:00:00.000
    */
      

  2.   

    谢谢楼上的高手 能否不用 DATEADD 我想直接指定日期呢?
      

  3.   

    select getdate(),dateadd(day,1,getdate())就一个函数dateadd()多看一点联机资料就知道了
      

  4.   

    CREATE TABLE #temp (id INT, dt DATETIME)
    INSERT #temp SELECT 1, '2013-08-08 12:00:00' UNION ALL SELECT 1, '2013-08-08 11:00:00'DECLARE @YourDate DATETIME
    SET @YourDate = '2013-10-1' --这个日期随便指定UPDATE #temp
    SET dt = DATEADD(DAY, DATEDIFF(DAY, DT, @YourDate), DT)
     
    SELECT * FROM #temp
    /*
    id dt
    1 2013-10-01 12:00:00.000
    1 2013-10-01 11:00:00.000
    */