DECLARE @WHERES VARCHAR(1000)
DECLARE @a datetime
DECLARE @b datetime
DECLARE @c varchar(100)
set @a=N'2012-08-14 15:00:00'
set @b=N'2012-08-14 19:30:00'
set @c='CAA396ED-9DE2-4C80-B4A8-0BFBF3DBBC33'
--SET @WHERES='AND CompanyId='+@c+' AND GpsTime>='''+@a+''' AND GpsTime<='''+@b+''''if @@ERROR<>0
begin
SET @WHERES=''
end问题一块看就明白,环境是sql2008,这蛋疼的引号让人很蛋疼。希望有同行可以拼接成功,并运行成功。
DECLARE @a datetime
DECLARE @b datetime
DECLARE @c varchar(100)
set @a=N'2012-08-14 15:00:00'
set @b=N'2012-08-14 19:30:00'
set @c='CAA396ED-9DE2-4C80-B4A8-0BFBF3DBBC33'
--SET @WHERES='AND CompanyId='+@c+' AND GpsTime>='''+@a+''' AND GpsTime<='''+@b+''''if @@ERROR<>0
begin
SET @WHERES=''
end问题一块看就明白,环境是sql2008,这蛋疼的引号让人很蛋疼。希望有同行可以拼接成功,并运行成功。
DECLARE @WHERES VARCHAR(1000)
DECLARE @a datetime
DECLARE @b datetime
DECLARE @c varchar(100)
set @a=N'2012-08-14 15:00:00'
set @b=N'2012-08-14 19:30:00'
set @c='CAA396ED-9DE2-4C80-B4A8-0BFBF3DBBC33'
SET @WHERES='AND CompanyId='+@c+' AND GpsTime>='+quotename(@a,'''')
+' AND GpsTime<='+QUOTENAME(@b,'''')
print @WHERES
--AND CompanyId=CAA396ED-9DE2-4C80-B4A8-0BFBF3DBBC33 AND GpsTime>='08 14 2012 3:00PM' AND GpsTime<='08 14 2012 7:30PM'
if @@ERROR<>0
begin
SET @WHERES=''
end
--直接用quotename就行了
DECLARE @WHERES VARCHAR(1000)
DECLARE @a datetime
DECLARE @b datetime
DECLARE @c varchar(100)
set @a=N'2012-08-14 15:00:00'
set @b=N'2012-08-14 19:30:00'
set @c='CAA396ED-9DE2-4C80-B4A8-0BFBF3DBBC33'
SET @WHERES='AND CompanyId='+@c+' AND GpsTime>='''+convert(varchar(19),@a,120)+''' AND GpsTime<='''+convert(varchar(19),@b,120)+''''
print @WHERES
if @@ERROR<>0
begin
SET @WHERES=''
end
DECLARE @WHERES VARCHAR(1000)
DECLARE @a datetime
DECLARE @b datetime
DECLARE @c varchar(100)
set @a=N'2012-08-14 15:00:00'
set @b=N'2012-08-14 19:30:00'
set @c='CAA396ED-9DE2-4C80-B4A8-0BFBF3DBBC33'
SET @WHERES='AND CompanyId='+@c+' AND GpsTime>='+''''+convert(varchar(30),@a,120)+''''
+' AND GpsTime<='+''''+convert(varchar(30),@b,120)+''''
print @WHERES
--AND CompanyId=CAA396ED-9DE2-4C80-B4A8-0BFBF3DBBC33 AND GpsTime>='2012-08-14 15:00:00' AND GpsTime<='2012-08-14 19:30:00'if @@ERROR<>0
begin
SET @WHERES=''
end--不使用quotename,那么这样拼接
DECLARE @a datetime
DECLARE @b datetime
DECLARE @c varchar(100)
set @a=N'2012-08-14 15:00:00'
set @b=N'2012-08-14 19:30:00'
set @c='CAA396ED-9DE2-4C80-B4A8-0BFBF3DBBC33'
SET @WHERES='AND CompanyId='''+@c+''' AND GpsTime>='''+CONVERT(VARCHAR(19),@a,120)+''' AND GpsTime<='''+CONVERT(VARCHAR(19),@b,120)+''''if @@ERROR<>0
begin
SET @WHERES=''
end
DECLARE @a datetime
DECLARE @b datetime
DECLARE @c varchar(100)
set @a=N'2012-08-14 15:00:00'
set @b=N'2012-08-14 19:30:00'
set @c='CAA396ED-9DE2-4C80-B4A8-0BFBF3DBBC33'
SET @WHERES='AND CompanyId='''+@c+''' AND
GpsTime>='''+CONVERT(VARCHAR(19),@a,120)+''' AND GpsTime<='''+CONVERT(VARCHAR(19),@b,120)+''''if @@ERROR<>0
begin
SET @WHERES=''
end