求SQL更新语句,修改的字段是日期时间型,只需要修改其中的月份。

例如:“2011-01-0111:37:37”修改为“2011-09-0111:37:37”即可。只修改月份,号数不改,每条记录的号数可能不一样。急用,谢谢!在线等,OK... 例如:“2011-01-01 11:37:37” 修改为 “2011-09-01 11:37:37” 即可。只修改月份,号数不改,每条记录的号数可能不一样。急用,谢谢!
在线等,OK即采纳。
展开
 我来答
asuan3000
推荐于2020-12-14 · TA获得超过2930个赞
知道小有建树答主
回答量:1056
采纳率:0%
帮助的人:441万
展开全部
update tablename set datavalue = convert(nvarchar,year(datavalue))+'-'+'要修改的月份' + right(convert(nvarchar(19),datavalue ,120),12) where 条件

datavalue 是你的日期字段
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangzhiqing999
2011-09-07 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3376万
展开全部
CREATE TABLE #test (
test datetime
)
GO

INSERT INTO #test VALUES('2011-01-01 11:37:37')
GO

SELECT
CONVERT( datetime,
LEFT(CONVERT(varchar, test, 120), 5)
+ '09'
+ RIGHT(CONVERT(varchar, test, 120), 12)
, 120) as result
FROM
#test

result
-----------------------
2011-09-01 11:37:37.000

(1 行受影响)
更多追问追答
追问
可否用update语句,修改的比较简单,一个是月份加9个月,即可1月变9月。另一种是12月变8月,即减4个月。
追答
直接指定的 9 月的语句。
UPDATE
#test
SET
test = CONVERT( datetime,
LEFT(CONVERT(varchar, test, 120), 5)
+ '09'
+ RIGHT(CONVERT(varchar, test, 120), 12)
, 120)

月份 加 9个月的语句
UPDATE
#test
SET
test = DATEADD (mm, 9 , test);

月份 减少 4个月的
UPDATE
#test
SET
test = DATEADD (mm, -4, test);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式