大家好,
我正在使用动态查询,其中我想使用保存日期时间的变量,每当我执行查询时它说不能从字符串转换datetime,当我将该变量转换为varchar(max)时,它将其作为字符串而不是datetime,那么我应该如何执行查询..
我正在使用动态查询,其中我想使用保存日期时间的变量,每当我执行查询时它说不能从字符串转换datetime,当我将该变量转换为varchar(max)时,它将其作为字符串而不是datetime,那么我应该如何执行查询..
下面是我试图执行的SQL查询.
SET @sql1 = 'SELECT B.FacId,B.FacName,B.BookCode,B.BookName,B.Quantity,CONVERT(VARCHAR(10),B.TillDate,104) AS TILLDATE FROM '+@TABLE+' B WHERE B.TillDate BETWEEN CONVERT(VARCHAR(10),'+@FROMDATE+',101) and CONVERT(VARCHAR(10),DATEADD(DD,1,'+@TODATE+'),101)' EXEC SP_EXECUTEsql @sql1
这里@fromdate和@todate是来自不同临时表的日期时间类型.并存储在这些变量中..
感谢致敬
阿巴斯电气公司.
解决方法
你需要引用你的日期..
SET @sql1 = 'SELECT B.FacId,104) AS TILLDATE FROM '+@TABLE+' B WHERE B.TillDate BETWEEN ''' + CONVERT(VARCHAR(10),@FROMDATE,101) + ''' and ''' + CONVERT(VARCHAR(10),@TODATE),101) + ''''