首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么将时间变量用到动态SQL中参与时间运算

2012-08-17 
如何将时间变量用到动态SQL中参与时间运算SQL codeALTER PROCEDURE [dbo].[output_jkzx]@s_db nvarchar(10

如何将时间变量用到动态SQL中参与时间运算

SQL code
ALTER PROCEDURE [dbo].[output_jkzx]    @s_db nvarchar(100),    @d_db nvarchar(100),    @exec_time intASdeclare @paramtdatetime datetime=(select getdate())declare @csd_batdeg nvarchar(2000)BEGINset @csd_batdeg='insert jkzx.'+@d_db+'.dbo.csd_batdeg'+' select * from '+@s_db+'.dbo.csd_batdeg where tm_datetime between dateadd(hour,'+convert(varchar(10),-@exec_time-24)+','+@paramtdatetime+') and dateadd(hour,'+convert(varchar(10),-@exec_time)+','+@paramtdatetime+')'exec sp_executesql @csd_batdeg,@s_db,@d_db,@exec_time

如上

[解决办法]
SQL code
ALTER PROCEDURE [dbo].[output_jkzx]    @s_db nvarchar(100),    @d_db nvarchar(100),    @exec_time intASdeclare @paramtdatetime datetimeset @paramtdatetime=getdate()declare @csd_batdeg nvarchar(2000)set @csd_batdeg='insert jkzx.'+@d_db+'.dbo.csd_batdeg'+' select * from '+@s_db+'.dbo.csd_batdeg where tm_datetime between dateadd(hour,'+convert(varchar(10),-@exec_time-24)+','+convert(varchar(10),@paramtdatetime,120)+') and dateadd(hour,'+convert(varchar(10),-@exec_time)+','+convert(varchar(10),@paramtdatetime,120)+')'exec sp_executesql @csd_batdeg,@s_db,@d_db,@exec_time 

热点排行