呵呵!又被sql搞迷糊了!

来源:百度知道 编辑:UC知道 时间:2024/05/30 09:33:42
数据表里面有一条记录是: 2007-10-24 09:19:18.340

我原本想通过update语句更改成:2006-10-24 09:19:18.340

我的语句如下:

update test set register_time=year(register_time)-1 where id=1

结果,tmd,他更新以后的数据居然是:

1905-06-30 00:00:00.000

郁闷阿郁闷…………………………………………………………

update test set register_time=dateadd(year,-1,register_time) where id=1

你写的有问题,year()取到2006,减1变成2005,但他不会认为这是年,而会认为是秒或者什么的,再把2005转换为日期,从最早日期开始加2005就得到了你看到的结果.
所以你要修改你的写法.

register_time=dateadd(...)

直接减去365