CREATE TABLE Branch
(
ID INT IDENTITY(1,1) NOT NULL,
BranchNO VARCHAR(10) NOT NULL,
DATE VARCHAR(15) NOT NULL,
)
GO
/*************************** 插入测试数据 *************************/
INSERT INTO Branch
SELECT '部门一','2010-01-01' UNION ALL
SELECT '部门二','2010-01-02' UNION ALL
SELECT '部门三','2010-01-03' UNION ALL
SELECT '部门四','2010-01-04' UNION ALL
SELECT '部门五','2010-01-05'
GO问题:
写一个存储过程,
把id都增加1,把部门*截取为部门,
把日期字段都增加一天,并以2010年01月01日显示返回。
(
ID INT IDENTITY(1,1) NOT NULL,
BranchNO VARCHAR(10) NOT NULL,
DATE VARCHAR(15) NOT NULL,
)
GO
/*************************** 插入测试数据 *************************/
INSERT INTO Branch
SELECT '部门一','2010-01-01' UNION ALL
SELECT '部门二','2010-01-02' UNION ALL
SELECT '部门三','2010-01-03' UNION ALL
SELECT '部门四','2010-01-04' UNION ALL
SELECT '部门五','2010-01-05'
GO问题:
写一个存储过程,
把id都增加1,把部门*截取为部门,
把日期字段都增加一天,并以2010年01月01日显示返回。
from tb
where date<'2010-01-01'
--where date > '2010-01-01'
as
begin
update Branch set ID=ID+1,BranchNO=substring(cast(Branch.BranchNO as char),1,2),DATE=DATE+1
end
(无列名) (无列名) (无列名)
2 部门 2010-01-02 00:00:00.000
3 部门 2010-01-03 00:00:00.000
4 部门 2010-01-04 00:00:00.000
5 部门 2010-01-05 00:00:00.000
6 部门 2010-01-06 00:00:00.000
把date字段改成datetime类型
@date datetime
as
begin
select id + 1 as id ,left(BranchNO,2) as BranchNO,dateadd(dd,1,date) as date
from tb
where date=@date
end
这样?
(
ID INT NOT NULL,
BranchNO VARCHAR(10) NOT NULL,
DATE VARCHAR(15) NOT NULL,
)
GO
/*************************** 插入测试数据 *************************/
INSERT INTO Branch
SELECT 1,'部门一','2010-01-01' UNION ALL
SELECT 2,'部门二','2010-01-02' UNION ALL
SELECT 3,'部门三','2010-01-03' UNION ALL
SELECT 4,'部门四','2010-01-04' UNION ALL
SELECT 5,'部门五','2010-01-05'
GO
update
branch
set
id=id+1,branchno=left(branchno,2),date=ltrim(year(dateadd(dd,1,date)))+'年'+ltrim(month(dateadd(dd,1,date)))+'月'+ltrim(day(dateadd(dd,1,date)))+'日'
select * from Branchdrop table Branch/*ID BranchNO DATE
----------- ---------- ---------------
2 部门 2010年1月2日
3 部门 2010年1月3日
4 部门 2010年1月4日
5 部门 2010年1月5日
6 部门 2010年1月6日(5 行受影响)*/
CREATE TABLE Branch
(
ID INT NOT NULL,
BranchNO VARCHAR(10) NOT NULL,
DATE VARCHAR(15) NOT NULL,
)
GO
/*************************** 插入测试数据 *************************/
INSERT INTO Branch
SELECT 1,'部门一','2010-01-01' UNION ALL
SELECT 2,'部门二','2010-01-02' UNION ALL
SELECT 3,'部门三','2010-01-03' UNION ALL
SELECT 4,'部门四','2010-01-04' UNION ALL
SELECT 5,'部门五','2010-01-05'
GO
create procedure updatebranch
as
begin
update branch set id=id+1,branchno=left(branchno,2),date=stuff(stuff(convert(varchar(10),dateadd(d,1,date),120),8,1,'月'),5,1,'年')+'日'
end
go
exec updatebranch
go
select * from branch
/*
ID BranchNO DATE
----------- ---------- ---------------
2 部门 2010年01月02日
3 部门 2010年01月03日
4 部门 2010年01月04日
5 部门 2010年01月05日
6 部门 2010年01月06日(5 行受影响)*/