加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 07:44:05 所属栏目:MsSql教程 来源:网络整理
导读:大家好, 我正在使用动态查询,其中我想使用保存日期时间的变量,每当我执行查询时它说不能从字符串转换datetime,当我将该变量转换为varchar(max)时,它将其作为字符串而不是datetime,那么我应该如何执行查询.. 下面是我试图执行的SQL查询. SET @SQL1 = 'SELECT B
大家好,
我正在使用动态查询,其中我想使用保存日期时间的变量,每当我执行查询时它说不能从字符串转换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) + ''''

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读