我正在尝试在动态sql查询中使用datetime变量。我尝试了许多查询,但始终没有返回正确的日期。例如:
declare @StartDate datetime = '2020-01-10'
SET @sql ='
select dateadd(day, 1, ' +@StartDate +')'
execute sp_executesql @sql;从字符串转换日期和/或时间时抛出错误。所以我试着
declare @StartDate datetime = '2020-01-10'
SET @sql ='
select dateadd(day, 1, ' +convert(varchar(10),@StartDate, 101) +')'
execute sp_executesql @sql;返回'1900-01-02‘,显然不是'2020-01-10’之后的第二天。所以它一直认为我的日期是0,它被转换为'1900-01-01‘。我在这里做错了什么?
发布于 2020-01-17 23:21:40
将日期作为参数传入!
set @sql ='
select dateadd(day, 1, @StartDate)';
execute sp_executesql @sql, N'@StartDate date', @StartDate=@StartDate;使用的是sp_executesql。现在也使用它支持的参数!
https://stackoverflow.com/questions/59790185
复制相似问题