我正在使用动态查询,其中我想使用保存日期时间的变量,每当我执行查询时,它都会说无法从字符串转换日期时间,当我将该变量转换为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
here @fromdate
and @todate
是datetime
来自不同临时表的类型。并存储在这些变量中..
我应该如何执行这个查询?
你需要引用你的日期..
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) + ''''
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)