Sql 用字符串连接datetime
尝试连接日期和字符串时出错Sql 用字符串连接datetime,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,尝试连接日期和字符串时出错 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 @to
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'
试试这样的
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
@sanmah,你也需要答案建议的引号来获得正确的结果,不是吗?@ala,当我用cast语句连接where时,没有引号也可以很好地工作。。。