我有一个基于某些数据构建的查询,我需要能够在字符串中添加@StartDate
参数但是我收到以下错误
从字符串转换日期和/或时间时转换失败。
部分查询是这样的:
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
DECLARE @where = ''
...
SET @where = @where + '(initDate BETWEEN ' + @StartDate + ' AND ' + @EndDate + ')'
如何在不导致此问题的情况下添加StartDate
和EndDate
?我尝试了CONVERT(DATETIME, @StartDate)
,但遇到了同样的问题
答案 0 :(得分:2)
试试这个
SET @where = @where + '(initDate BETWEEN ' + convert(varchar(10),@StartDate,104) + ' AND ' + convert(varchar(10),@EndDate,104) + ')'
OR
SET @where = @where + '(initDate BETWEEN ' + convert(varchar(10),@StartDate,106) + ' AND ' + convert(varchar(10),@EndDate,106) + ')'
答案 1 :(得分:0)
只需使用CAST or CONVERT将@StartDate和@EndDate更改为字符串即可。根据提供所需精度级别的链接选择合适的方法。