1

我有一个基于某些数据构建的查询,我需要能够@StartDate在字符串中添加参数,但出现以下错误

从字符串转换日期和/或时间时转换失败。

部分查询是这样的:

DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
DECLARE @where = ''
...

SET @where = @where + '(initDate BETWEEN ' + @StartDate + ' AND ' + @EndDate + ')'

如何在不引起此问题的情况下添加StartDateand ?EndDate我试过CONVERT(DATETIME, @StartDate)了,但遇到同样的问题

4

2 回答 2

2

尝试这个

SET @where = @where + '(initDate BETWEEN ' + convert(varchar(10),@StartDate,104) + ' AND ' + convert(varchar(10),@EndDate,104) + ')'

或者

SET @where = @where + '(initDate BETWEEN ' + convert(varchar(10),@StartDate,106) + ' AND ' + convert(varchar(10),@EndDate,106) + ')'
于 2013-04-21T16:41:42.270 回答
0

只需使用CAST 或 CONVERT将 @StartDate 和 @EndDate 更改为字符串。根据为您提供所需精度级别的链接选择适当的方法。

于 2013-04-21T16:44:43.507 回答