如何在sql字符串中添加日期变量

时间:2013-04-21 16:36:45

标签: sql sql-server-2008

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

  

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

部分查询是这样的:

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

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

如何在不导致此问题的情况下添加StartDateEndDate?我尝试了CONVERT(DATETIME, @StartDate),但遇到了同样的问题

2 个答案:

答案 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更改为字符串即可。根据提供所需精度级别的链接选择合适的方法。