动态SQL中的日期时间转换/混合变量
我有一个包含多个DateTime列的表-TblDate1、TblDate2、TblDate3等 我需要一个接受参数的查询来指定要与另一个日期比较的日期列 这是我的查询尝试-动态SQL中的日期时间转换/混合变量,sql,tsql,Sql,Tsql,我有一个包含多个DateTime列的表-TblDate1、TblDate2、TblDate3等 我需要一个接受参数的查询来指定要与另一个日期比较的日期列 这是我的查询尝试- DECLARE @DateColumn nvarchar(128) SET @DateColumn = 'TblDate2' DECLARE @DateStart datetime SET @DateStart = DATEADD(d, -7, getdate()) EXECUTE sp_executesql N'SELE
DECLARE @DateColumn nvarchar(128) SET @DateColumn = 'TblDate2'
DECLARE @DateStart datetime SET @DateStart = DATEADD(d, -7, getdate())
EXECUTE sp_executesql
N'SELECT * FROM MessagesTable WHERE @DateStartIN < @DateColumnIN'
, N'@DateStartIN datetime, @DateColumnIN nvarchar(128)'
, @DateStartIN = @DateStart
, @DateColumnIN = @DateColumn
试试这个:
DECLARE @DateColumn VARCHAR(128) SET @DateColumn = 'TblDate2'
DECLARE @DateStart DATETIME SET @DateStart = DATEADD(d, -7, GETDATE())
DECLARE @pvsSQL NVARCHAR(256)
SET @pvsSQL = 'SELECT * FROM MessagesTable WHERE '+ @DateColumn +' < ''' + CONVERT(VARCHAR, @DateStart ) + ''';'
EXECUTE sp_executesql @pvsSQL
DECLARE @DateColumn VARCHAR(128) SET @DateColumn = 'TblDate2'
DECLARE @DateStart DATETIME SET @DateStart = DATEADD(d, -7, GETDATE())
DECLARE @pvsSQL NVARCHAR(256)
SET @pvsSQL = 'SELECT * FROM MessagesTable WHERE '+ @DateColumn +' < ''' + CONVERT(VARCHAR, @DateStart ) + ''';'
EXECUTE sp_executesql @pvsSQL