34,590
社区成员
发帖
与我相关
我的任务
分享
ALTER PROCEDURE [dbo].[Tb_AdvancedSearch]
(
@fld_GoodsClassId int,
@fld_StartLevel nvarchar(50),
@fld_DistrictId int,
@fld_CreatedTime datetime
)
AS
begin
declare @sql nvarchar(1000) --生成的sql语句
if @fld_DistrictId = 0
begin
set @sql = 'select b.*,
c.fld_UserName as fld_UserName,
d.fld_DistrictName as fld_DistrictName,
e.fld_GoodsClassName as fld_GoodsClassName,
*
FROM Tb_Goods as b inner join Tb_User as c on b.fld_UserId = c.fld_UserId
inner join Tb_District as d on b.fld_DistrictId = d.fld_DistrictId
inner join Tb_GoodsClass as e on b.fld_GoodsClassId = e.fld_GoodsClassId
WHERE b.fld_GoodsClassId = ''' + cast(@fld_GoodsClassId as varchar(10)) + ''' and fld_StartLevel = ''' + @fld_StartLevel + ''' and fld_CreatedTime >= ''' + cast(@fld_CreatedTime as varchar)
exec sp_executesql @sql
end
else
begin
set @sql = 'select b.*,
c.fld_UserName as fld_UserName,
d.fld_DistrictName as fld_DistrictName,
e.fld_GoodsClassName as fld_GoodsClassName,
*
FROM Tb_Goods as b inner join Tb_User as c on b.fld_UserId = c.fld_UserId
inner join Tb_District as d on b.fld_DistrictId = d.fld_DistrictId
inner join Tb_GoodsClass as e on b.fld_GoodsClassId = e.fld_GoodsClassId
WHERE b.fld_GoodsClassId = ''' + cast(@fld_GoodsClassId as varchar(10)) + ''' and fld_StartLevel = ''' + @fld_StartLevel + ''' and fld_CreatedTime >= ''' +cast(@fld_CreatedTime as varchar) + ''' and fld_DistrictId = ''' + cast(@fld_DistrictId as varchar)
exec sp_executesql @sql
end
end
ALTER PROCEDURE [dbo].[Tb_AdvancedSearch]
(
@fld_GoodsClassId int,
@fld_StartLevel nvarchar(50),
@fld_DistrictId int,
@fld_CreatedTime datetime
)
AS
begin
declare @sql nvarchar(1000) --生成的sql语句
if @fld_DistrictId = 0
begin
set @sql = 'select b.*,
c.fld_UserName as fld_UserName,
d.fld_DistrictName as fld_DistrictName,
e.fld_GoodsClassName as fld_GoodsClassName,
*
FROM Tb_Goods as b inner join Tb_User as c on b.fld_UserId = c.fld_UserId
inner join Tb_District as d on b.fld_DistrictId = d.fld_DistrictId
inner join Tb_GoodsClass as e on b.fld_GoodsClassId = e.fld_GoodsClassId
WHERE b.fld_GoodsClassId = ' + cast(@fld_GoodsClassId as varchar(10)) + ' and fld_StartLevel = ''' + @fld_StartLevel + ''' and fld_CreatedTime >= ''' + convert(varchar(19),@fld_CreatedTime ,120) +''''
exec sp_executesql @sql
end
else
begin
set @sql = 'select b.*,
c.fld_UserName as fld_UserName,
d.fld_DistrictName as fld_DistrictName,
e.fld_GoodsClassName as fld_GoodsClassName,
*
FROM Tb_Goods as b inner join Tb_User as c on b.fld_UserId = c.fld_UserId
inner join Tb_District as d on b.fld_DistrictId = d.fld_DistrictId
inner join Tb_GoodsClass as e on b.fld_GoodsClassId = e.fld_GoodsClassId
WHERE b.fld_GoodsClassId = ' + cast(@fld_GoodsClassId as varchar(10)) + ' and fld_StartLevel = ''' + @fld_StartLevel + ''' and fld_CreatedTime >= ''' +convert(varchar(19),@fld_CreatedTime ,120) + ''' and fld_DistrictId = ' + cast(@fld_DistrictId as varchar(10))
exec sp_executesql @sql
end
end
字符串是int时可以不用加引号,以上更改了where错误部份的内容
Select CONVERT(varchar(100), GETDATE(), 0)--05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1)--05/16/06
Select CONVERT(varchar(100), GETDATE(), 2)--06.05.16
Select CONVERT(varchar(100), GETDATE(), 3)--16/05/06
Select CONVERT(varchar(100), GETDATE(), 4)--16.05.06
Select CONVERT(varchar(100), GETDATE(), 5)--16-05-06
Select CONVERT(varchar(100), GETDATE(), 6)--16 05 06
Select CONVERT(varchar(100), GETDATE(), 7)--05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8)--10:57:46
Select CONVERT(varchar(100), GETDATE(), 9)--05 16 200610:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10)--05-16-06
Select CONVERT(varchar(100), GETDATE(), 11)--06/05/16
Select CONVERT(varchar(100), GETDATE(), 12)--060516
Select CONVERT(varchar(100), GETDATE(), 13)--16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14)--10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20)--2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21)--2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22)--05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23)--2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24)--10:57:47
Select CONVERT(varchar(100), GETDATE(), 25)--2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100)--05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101)--05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102)--2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103)--16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104)--16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105)--16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106)--16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107)--05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108)--10:57:49
Select CONVERT(varchar(100), GETDATE(), 109)--05 16 200610:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110)--05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111)--2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112)--20060516
Select CONVERT(varchar(100), GETDATE(), 113)--16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114)--10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120)--2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121)--2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126)--2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130)--18 ???? ?????? 142710:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131)--18/04/142710:57:49:920AM