关于SQL SERVER的修改数据问题.难得我哦

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于SQL SERVER的修改数据问题.难得我哦相关的知识,希望对你有一定的参考价值。

把一个表里的字段A数据修改,表里有日期的字段
要求日期为单日和双日把表里的字段A改为不同的值,并且,日期可以是1年或更长.
是这样的
我要修改一个表里的数据
要根据日期的不同来修改,是2006年1月1号就修改字段A为2,是1月2号就修改字段A为3.就这样.以次类推.3号修改字段A为2,4号修改字段A为3.
逢单日就修改为2,双日修改为3.
这样能实现吗?
就算不能实现,那有没有什么好的方法可以快速的满足我的要求.谢谢了!!!我会再加100分的!!!

我不知道怎么写语句啊????帮帮我

------------------------------
我要修改的表是CASEPROC,要修改的字段是OPER_NUM,要根据日期修改,日期字段是BE_DATA
其中,OPER_NUM的值是整数,BE_DATA的值类似于2005-01-01 15:50:30
我要判断日期是单日还是双日.
而不是把日期也给修改了.
谢谢了.
----------------------------
执行了,但提示错误:
我的语句是这样的
update caseproc set oper_num=6 where right(rtrim(end_time),1)%2=0
提示说将VARCHAR值'M'转换为INT的列时发生语法错误.

参考技术A sql
server
2008
更改字段之后,必须要重新启动一下软件,才能再次做插入的操作。当时我也是遇到这情况,搞了几个小时,一气之下,关了软件,气消了,打开,就好了
-
-。。
参考技术B 以为你日期为char型的
convert(char,BE_DATA)之后日期会改变顺序,如:
2006-11-12 00:00:00.000 会变为
11 12 2006 12:00AM
用substring取得天号,也就是在第5位
更正后的:
update CASEPROC
set OPER_NUM= 3
where substring(convert(char,BE_DATA),5,1)%2 = 0
update CASEPROC
set OPER_NUM= 2
where substring(convert(char,BE_DATA),5,1)%2 = 1本回答被提问者采纳
参考技术C DECLARE @AA DATETIME
DECLARE CURSOR1 CURSOR FOR
SELECT BE_DATE
FROM CASEPROC
OPEN CURSOR1
FETCH NEXT FROM CURSOR1 INTO @AA
WHILE @@FETCH_STATUS=0
BEGIN
IF day(BE_DATE)%2=0
BEGIN
UPDATE CASEPROC
SET OPER_NUM='2'
WHERE BE_DATE=@AA
END
ELSE IF day(BE_DATE)%2=1
BEGIN
UPDATE CASEPROC
SET OPER_NUM='1'
WHERE BE_DATE=@AA
END
END
CLOSE CURSOR1
DEALLOCATE CURSOR1

我没建表,只是打了出来,你拷回去看看吧有什么问题再问我。再有,变量引用那里有可能会出点问题。我用的是游标的引用
参考技术D 应该能的吧~~~你试试啦~~~ 第5个回答  2006-03-15 请先学好中文再来学SQL!不知道你在说什么?

以上是关于关于SQL SERVER的修改数据问题.难得我哦的主要内容,如果未能解决你的问题,请参考以下文章

关于SQL Server中修改“用户自定义表类型”的问题

关于SQL Server2005数据表字段关联问题

sql server锁(lock)知识及锁应用

sqlserver关于用一个sql语句批量添加数据的问题

关于sql server查询的where不识别列名的问题

关于SQL Server镜像的一个小误区