请问如何在T_SQL生成变量@STRWHERE,对日期的处理有问题?
也就是如何把日期变量两边加上"'",使他成为正确的查询语句
declare
@ProDefID int,
@ProBGType int,
@StatGrade int,
@StartDate datetime,
@EndDate datetime,
@QLRXZ int,
@PZYT int,
@SYQLX int,
@QSXZ int,
@STRWHERE varchar(200),
@BussinessNumber int
select @ProDefID=1
select @ProBGType=59
select @StartDate='2004-09-01'
select @EndDate='2005-01-01'
Select @STRWHERE=' 000' + ' AND Proinst_Type='+ cast(@ProDefID as varchar(3)) +' AND Proinst_Type=' + cast(@ProBGType as varchar(3)) +' AND Start_Date>='' + convert(varchar(20),@StartDate,20) + '' AND End_Date<= '' + convert(varchar(20),@EndDate,20) + '''
print 'SELECT Count(Proins_ID) FROM RT_PigeProStat WHERE not ZQ_DM like' + @STRWHERE
SELECT @BussinessNumber=Count(Proins_ID) FROM RT_PigeProStat WHERE not ZQ_DM like @STRWHERE
print @BussinessNumber
期望结果:
SELECT Count(Proins_ID) FROM RT_PigeProStat WHERE not ZQ_DM like 000 AND Proinst_Type=1 AND Proinst_Type=59 AND Start_Date>='2004-09-01 00:00:00' AND End_Date<= '2005-01-01 00:00:00'