怎么指定动态的GETDATE
select CIFNm,ContractNm,LoanBlankDate,PeriodNm,'PeriodMangeCharge' as RepayType,PeriodMangeCharge as RepayAmount,
LoanBalance,TotalInterest,RemainInterest,RemainPeriod,IsAdvanceBlack,'0' as bk from InterestList
) AS a
where convert(varchar(10),LoanBlankDate,120) =convert(varchar(10),GETDATE(),120) and IsAdvanceBlack='False'
我的存储过程中有这么一句话。
convert(varchar(10),GETDATE(),120)
现在,我想在程序里调用存储过程,
但是GETDATE需要时可能是一个变量,比如:2012-8-27-2012-9-12
请问怎么写。
[解决办法]
你是要把getdate替换成某一个日期还是一个日期区间呢?
如果是某一个日期,那么存储过程多接受个参数@Date
语句改成
select CIFNm,ContractNm,LoanBlankDate,PeriodNm,'PeriodMangeCharge' as RepayType,PeriodMangeCharge as RepayAmount,LoanBalance,TotalInterest,RemainInterest,RemainPeriod,IsAdvanceBlack,'0' as bk from InterestList) AS a where convert(varchar(10),LoanBlankDate,120) =convert(varchar(10),@Date,120) and IsAdvanceBlack='False'
[解决办法]
思维不要太跳跃
你想需要可变那就是参数,只是有时不传这个参数的时候用当前时间代替,那就是一个默认NULL的参数,在存储过程处理下参数,如果NULL用GETDATE()代替
CREATE PROC PR_TEST (@DT DATETIME = NULL)ASIF @DT IS NULL SET @DT = GETDATE()...GO