当前位置: 代码迷 >> Sql Server >> 怎么将时间变量用到动态SQL中参与时间运算
  详细解决方案

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

热度:22   发布时间:2016-04-27 12:07:58.0
如何将时间变量用到动态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 [email protected]_db+'.dbo.csd_batdeg'+' select * from [email protected]_db+'.dbo.csd_batdeg where tm_datetime between dateadd(hour,'+convert(varchar(10),[email protected]_time-24)+',[email protected]+') and dateadd(hour,'+convert(varchar(10),[email protected]_time)+',[email protected]+')'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 [email protected]_db+'.dbo.csd_batdeg'+' select * from [email protected]_db+'.dbo.csd_batdeg where tm_datetime between dateadd(hour,'+convert(varchar(10),[email protected]_time-24)+','+convert(varchar(10),@paramtdatetime,120)+') and dateadd(hour,'+convert(varchar(10),[email protected]_time)+','+convert(varchar(10),@paramtdatetime,120)+')'exec sp_executesql @csd_batdeg,@s_db,@d_db,@exec_time
  相关解决方案