sql-server – 在SQL Server中使用带有动态查询的datetime

前端之家收集整理的这篇文章主要介绍了sql-server – 在SQL Server中使用带有动态查询的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) + ''''
原文链接:https://www.f2er.com/mssql/76526.html

猜你在找的MsSQL相关文章