12 个解决方案
#1
create proc pro_a3
@state datetime,
@end datetime
as
declare @day int
set @day = datediff(day,@state,@end)
declare @i int
set @i=1
while @i<=@day
begin
--你的sql语句
--insert into a (smalldatetime) values('2012-5-5')
set @i=@i+1
end
go
exec pro_a3 '2013-05-01','2013-05-22'
#2
参考
declare @b datetime,@e datetime
set @b='2009-1-1'
set @e=dateadd(y,1,@b)
while @b<@e
begin
insert tby values (@b,'....')
set @b=@b+1
end
#3
--日期差还要加1
create proc pro_a3
@state datetime,
@end datetime
as
declare @day int
set @day = datediff(day,@state,@end)
declare @i int
set @i=1
while @i<=@day+1
begin
--你的sql语句
--insert into a (smalldatetime) values('2012-5-5')
set @i=@i+1
end
go
exec pro_a3 '2013-05-01','2013-05-22'
#4
使用while 循环就OK。
#5
你用游标就可以了。
#7
看不太明白 我用while 测试了 没插入成功
#8
你先创建函数,然后类似以下格式:
insert into 目标表([date],[内容])
select [date] ,'XXXXX' as [内容]
from dbo.generateTime('2009-01-01','2009-01-10')
insert into 目标表([date],[内容])
select [date] ,'XXXXX' as [内容]
from dbo.generateTime('2009-01-01','2009-01-10')
#9
ALTER PROCEDURE [dbo].[dbaddshebei]
@sysid int,
@sbid int,
@begtime datetime,
@endtime datetime,
@neirong int
AS
declare @day int,@i int,@checktime datetime
set @day=datediff(day,@begtime,@endtime)
set @i=1
set @checktime=@begtime
while @i=@day+1
begin
insert into sbcheckplantime(sysid,sbid,checktime,planjxtime)
values(@sysid,@sbid,@checktime,@neirong)
set @checktime=dateadd(day,1,@checktime)
set @i=@i+1
end
我写的 但是没有插入成功 不知道是什么问题。。求助啊·
@sysid int,
@sbid int,
@begtime datetime,
@endtime datetime,
@neirong int
AS
declare @day int,@i int,@checktime datetime
set @day=datediff(day,@begtime,@endtime)
set @i=1
set @checktime=@begtime
while @i=@day+1
begin
insert into sbcheckplantime(sysid,sbid,checktime,planjxtime)
values(@sysid,@sbid,@checktime,@neirong)
set @checktime=dateadd(day,1,@checktime)
set @i=@i+1
end
我写的 但是没有插入成功 不知道是什么问题。。求助啊·
#10
有没有报错?有没有跟踪过到了insert那步,那些参数是不是你希望传入的格式?
#11
没有报错 我用数据测试 插入0行。。 我用之前你给的函数 成功了 但是 用函数的话 我没法判断 如果之前插入过了就更新 否则就插入。。
#12
你的逻辑有问题,while那里不要一开始就加一,直接@i=@day就可以了
#1
create proc pro_a3
@state datetime,
@end datetime
as
declare @day int
set @day = datediff(day,@state,@end)
declare @i int
set @i=1
while @i<=@day
begin
--你的sql语句
--insert into a (smalldatetime) values('2012-5-5')
set @i=@i+1
end
go
exec pro_a3 '2013-05-01','2013-05-22'
#2
参考
declare @b datetime,@e datetime
set @b='2009-1-1'
set @e=dateadd(y,1,@b)
while @b<@e
begin
insert tby values (@b,'....')
set @b=@b+1
end
#3
--日期差还要加1
create proc pro_a3
@state datetime,
@end datetime
as
declare @day int
set @day = datediff(day,@state,@end)
declare @i int
set @i=1
while @i<=@day+1
begin
--你的sql语句
--insert into a (smalldatetime) values('2012-5-5')
set @i=@i+1
end
go
exec pro_a3 '2013-05-01','2013-05-22'
#4
使用while 循环就OK。
#5
你用游标就可以了。
#6
http://blog.csdn.net/maco_wang/article/details/6279025用这里的函数,获取两个日期间的所有天数,然后进行运算
#7
看不太明白 我用while 测试了 没插入成功
#8
你先创建函数,然后类似以下格式:
insert into 目标表([date],[内容])
select [date] ,'XXXXX' as [内容]
from dbo.generateTime('2009-01-01','2009-01-10')
insert into 目标表([date],[内容])
select [date] ,'XXXXX' as [内容]
from dbo.generateTime('2009-01-01','2009-01-10')
#9
ALTER PROCEDURE [dbo].[dbaddshebei]
@sysid int,
@sbid int,
@begtime datetime,
@endtime datetime,
@neirong int
AS
declare @day int,@i int,@checktime datetime
set @day=datediff(day,@begtime,@endtime)
set @i=1
set @checktime=@begtime
while @i=@day+1
begin
insert into sbcheckplantime(sysid,sbid,checktime,planjxtime)
values(@sysid,@sbid,@checktime,@neirong)
set @checktime=dateadd(day,1,@checktime)
set @i=@i+1
end
我写的 但是没有插入成功 不知道是什么问题。。求助啊·
@sysid int,
@sbid int,
@begtime datetime,
@endtime datetime,
@neirong int
AS
declare @day int,@i int,@checktime datetime
set @day=datediff(day,@begtime,@endtime)
set @i=1
set @checktime=@begtime
while @i=@day+1
begin
insert into sbcheckplantime(sysid,sbid,checktime,planjxtime)
values(@sysid,@sbid,@checktime,@neirong)
set @checktime=dateadd(day,1,@checktime)
set @i=@i+1
end
我写的 但是没有插入成功 不知道是什么问题。。求助啊·
#10
有没有报错?有没有跟踪过到了insert那步,那些参数是不是你希望传入的格式?
#11
没有报错 我用数据测试 插入0行。。 我用之前你给的函数 成功了 但是 用函数的话 我没法判断 如果之前插入过了就更新 否则就插入。。
#12
你的逻辑有问题,while那里不要一开始就加一,直接@i=@day就可以了