問題來源:今天在編寫存儲過程的時候,遇到了篩選條件時間段 beginTime EndTime , 直接使用這個變量拼接sql語句是不能識別的 ,必須添加單引號
現在寫出來以備后用,(提醒自己別忘了這么簡單的事)
declare @beginTime nvarchar(50) declare @EndTime nvarchar(50) declare @Sql nvarchar(100) set @Sql='select * from Flow_TenderReviewApproval A where A.Times bewteen '''+@beginTime+''' and '''+@EndTime+'''' exec(@Sql)
順便在記錄一下: exec() 可以執行Sql或存儲過程
******************************** 分界線*********************************
后來,我發現了一種更為簡單的方式去避免字符串拼接,記錄一下
無意中在網上看到還有這樣的寫法 所以對於單引號字符串拼接不熟悉的可以使用這種方式,效果是完全相同的,這樣看起來更加通俗易懂,避免了字符串中的單引號拼接
declare @beginTime nvarchar(50) declare @EndTime nvarchar(50) declare @Sql nvarchar(100) select * from Flow_TenderReviewApproval A where A.Times bewteen (select @beginTime) and (select @EndTime)
