服务器: 消息 295,级别 16,状态 3,过程 Seleuser,行 19
从字符串转换为 smalldatetime 数据类型时发生语法错误。CREATE PROCEDURE Seleuser
@Name Varchar(12),
@sex Varchar(4),
@useID Varchar(10),
@birthday smalldatetime
AS
declare @str varchar(800)
declare @where varchar(500)set @where=' where 1=1 ' if(@Name<>'')
set @where=@where+ ' and Name='+@Name
if(@sex<>'')
set @where=@where+ ' and sex='+@sex
if(@useID<>'')
set @where=@where+ ' and useID='+@useID
if(@birthday<>'')
set @where=@where+ ' and birthday=Convert(smalldatetime,'+@birthday+'110)'set @str = 'select * from user_info '+@where
exec(@str)
GO在查询分析器执行如下
exec seleuser '','','','2006-8-8'
go显示如下
服务器: 消息 295,级别 16,状态 3,过程 Seleuser,行 19
从字符串转换为 smalldatetime 数据类型时发生语法错误。
从字符串转换为 smalldatetime 数据类型时发生语法错误。CREATE PROCEDURE Seleuser
@Name Varchar(12),
@sex Varchar(4),
@useID Varchar(10),
@birthday smalldatetime
AS
declare @str varchar(800)
declare @where varchar(500)set @where=' where 1=1 ' if(@Name<>'')
set @where=@where+ ' and Name='+@Name
if(@sex<>'')
set @where=@where+ ' and sex='+@sex
if(@useID<>'')
set @where=@where+ ' and useID='+@useID
if(@birthday<>'')
set @where=@where+ ' and birthday=Convert(smalldatetime,'+@birthday+'110)'set @str = 'select * from user_info '+@where
exec(@str)
GO在查询分析器执行如下
exec seleuser '','','','2006-8-8'
go显示如下
服务器: 消息 295,级别 16,状态 3,过程 Seleuser,行 19
从字符串转换为 smalldatetime 数据类型时发生语法错误。
@Name Varchar(12),
@sex Varchar(4),
@useID Varchar(10),
@birthday smalldatetime
AS
declare @str varchar(800)
declare @where varchar(500) set @where=' where 1=1 ' if(@Name <>'')
set @where=@where+ ' and Name='+@Name
if(@sex <>'')
set @where=@where+ ' and sex='+@sex
if(@useID <>'')
set @where=@where+ ' and useID='+@useID
if(@birthday <>'')
set @where=@where+ ' and birthday=Convert(smalldatetime,'''+convert(varchar(10),@birthday,120)+''')' set @str = 'select * from user_info '+@where
exec(@str)
GO
@Name Varchar(12),
@sex Varchar(4),
@useID Varchar(10),
@birthday smalldatetime
AS
declare @str varchar(800)
declare @where varchar(500) set @where=' where 1=1 ' if(@Name <>'')
set @where=@where+ ' and Name='+@Name
if(@sex <>'')
set @where=@where+ ' and sex='+@sex
if(@useID <>'')
set @where=@where+ ' and useID='+@useID
if(@birthday <>'')
set @where=@where+ ' and birthday='''+convert(varchar(10),@birthday,120)+'''' set @str = 'select * from user_info '+@where
exec(@str)
GO
@Name Varchar(12),
@sex Varchar(4),
@useID Varchar(10),
@birthday smalldatetime
AS
declare @str varchar(800)
declare @where varchar(500) set @where=' where 1=1 ' if(@Name <>'')
set @where=@where+ ' and Name='+@Name
if(@sex <>'')
set @where=@where+ ' and sex='+@sex
if(@useID <>'')
set @where=@where+ ' and useID='+@useID
if(@birthday <>'')
set @where=@where+ ' and datediff(day,birthday,'''+convert(varchar(10),@birthday,120)+''')=0' set @str = 'select * from user_info '+@where
exec(@str)
GO