--当天时间,每月1号
declare @dtSJ datetime
--上月末时间
declare @ymSJ datetime
declare @DAY_ID varchar(10)
declare @ymDAY_ID varchar(10)
--上月末天数
declare @d int
set @dtSJ = getdate()
set @ymSJ= DATEADD(day,-1,@dtSJ)
set @d=DAY ( @ymSJ )
declare @sql as nvarchar(3000)
--print set @DAY_ID=convert(varchar(10), @dtSJ,112)
set @ymDAY_ID=convert(varchar(10), @ymSJ,112)
set @sql='insert into ID_ZHB3 (JGDH,KMDH,HB,RQ,YMJYE,YMDYE) 
select * from openquery(db2it,~select GL_OPUN_COD,GL_FIRST_LEVEL_GL_COD+GL_SECOND_LEVEL_GL_CD+GL_THIRD_LEVEL_GL_CD KMDH,
GL_CURR_COD_AUTHOR,@ymDAY_ID,(GL_DR_BAL_1+GL_DR_BAL_2+GL_DR_BAL_3+GL_DR_BAL_4+GL_DR_BAL_5+GL_DR_BAL_6+GL_DR_BAL_7
+GL_DR_BAL_8+GL_DR_BAL_9+GL_DR_BAL_10+GL_DR_BAL_11+GL_DR_BAL_12+GL_DR_BAL_13+GL_DR_BAL_14+GL_DR_BAL_15+GL_DR_BAL_16
+GL_DR_BAL_17+GL_DR_BAL_18+GL_DR_BAL_19+GL_DR_BAL_20+GL_DR_BAL_21+GL_DR_BAL_22+GL_DR_BAL_23+GL_DR_BAL_24+GL_DR_BAL_25
+GL_DR_BAL_26+GL_DR_BAL_27+GL_DR_BAL_28+GL_DR_BAL_29+GL_DR_BAL_30+GL_DR_BAL_31)/@d,
(GL_CR_BAL_1+GL_CR_BAL_2+GL_CR_BAL_3+GL_CR_BAL_4+GL_CR_BAL_5+GL_CR_BAL_6+GL_CR_BAL_7
+GL_CR_BAL_8+GL_CR_BAL_9+GL_CR_BAL_10+GL_CR_BAL_11+GL_CR_BAL_12+GL_CR_BAL_13+GL_CR_BAL_14+GL_CR_BAL_15
+GL_CR_BAL_16+GL_CR_BAL_17+GL_CR_BAL_18+GL_CR_BAL_19+GL_CR_BAL_20+GL_CR_BAL_21+GL_CR_BAL_22+GL_CR_BAL_23+GL_CR_BAL_24
+GL_CR_BAL_25+GL_CR_BAL_26+GL_CR_BAL_27+GL_CR_BAL_28+GL_CR_BAL_29+GL_CR_BAL_30+GL_CR_BAL_31)/@d from SQ20111109.dbo.ODS_GLGLGHTD 
where DAY_ID='+@DAY_ID+'~)'
set @sql =replace(@sql,'~',char(39))
print @sql  上面是我写得一个东西;
insert into ID_ZHB3 (JGDH,KMDH,HB,RQ,YMJYE,YMDYE) 
select * from openquery(db2it,'select GL_OPUN_COD,GL_FIRST_LEVEL_GL_COD+GL_SECOND_LEVEL_GL_CD+GL_THIRD_LEVEL_GL_CD KMDH,
GL_CURR_COD_AUTHOR,@ymDAY_ID,(GL_DR_BAL_1+GL_DR_BAL_2+GL_DR_BAL_3+GL_DR_BAL_4+GL_DR_BAL_5+GL_DR_BAL_6+GL_DR_BAL_7
+GL_DR_BAL_8+GL_DR_BAL_9+GL_DR_BAL_10+GL_DR_BAL_11+GL_DR_BAL_12+GL_DR_BAL_13+GL_DR_BAL_14+GL_DR_BAL_15+GL_DR_BAL_16
+GL_DR_BAL_17+GL_DR_BAL_18+GL_DR_BAL_19+GL_DR_BAL_20+GL_DR_BAL_21+GL_DR_BAL_22+GL_DR_BAL_23+GL_DR_BAL_24+GL_DR_BAL_25
+GL_DR_BAL_26+GL_DR_BAL_27+GL_DR_BAL_28+GL_DR_BAL_29+GL_DR_BAL_30+GL_DR_BAL_31)/@d,
(GL_CR_BAL_1+GL_CR_BAL_2+GL_CR_BAL_3+GL_CR_BAL_4+GL_CR_BAL_5+GL_CR_BAL_6+GL_CR_BAL_7
+GL_CR_BAL_8+GL_CR_BAL_9+GL_CR_BAL_10+GL_CR_BAL_11+GL_CR_BAL_12+GL_CR_BAL_13+GL_CR_BAL_14+GL_CR_BAL_15
+GL_CR_BAL_16+GL_CR_BAL_17+GL_CR_BAL_18+GL_CR_BAL_19+GL_CR_BAL_20+GL_CR_BAL_21+GL_CR_BAL_22+GL_CR_BAL_23+GL_CR_BAL_24
+GL_CR_BAL_25+GL_CR_BAL_26+GL_CR_BAL_27+GL_CR_BAL_28+GL_CR_BAL_29+GL_CR_BAL_30+GL_CR_BAL_31)/@d from SQ20111109.dbo.ODS_GLGLGHTD 
where DAY_ID=20111115')
这是执行print @sql后得到的。
我怎么才能把20111115带上引号,因为DAY_ID是个字符类型。另外@d怎么执行print后,我的值替换掉@d