表 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语法怎么写?谢谢
------解决方案--------------------
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
*/
------解决方案--------------------
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
*/