我在尝试连接日期和字符串时遇到错误。
declare @select varchar(max)
declare @where varchar(max)
set @select = 'select * from tbl Emp........'
@where = ' where Emp.date >='+ cast((cast(getdate() as date)) as varchar(20))
exec(@select+@where)
我也试着像下面这样做,但没有用:
declare @today varchar(20)
@today = cast((cast(getdate() as date))
@where = 'where Emp.date> =' + '@today'
答案 0 :(得分:4)
尝试这样的事情......
declare @select varchar(max)
declare @where varchar(max)
set @select = 'select * from tbl Emp '
set @where = ' where Emp.date >= ''' + CONVERT(varchar(8),getdate(),112) + ''''
exec(@select+@where)
或者更好的选择就是这样......
DECLARE @Sql nvarchar(max);
DECLARE @Date DATE = GETDATE();
SET @Sql = N' select * from tbl Emp '
+ N' where Emp.date >= @Date'
Exec sp_executesql @Sql
,N'@Date DATE'
,@Date
但是为什么你甚至需要动态sql这个简单的查询为什么你不能简单地做
DECLARE @Date DATE = GETDATE();
select * from tbl Emp
where Emp.date >= @Date