粉体阀门:一个SQL提取数据的出错程序

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 14:53:55
数据库名:运单跟踪表

数据库结构:跟踪记录[ntext(16)]、运单编号[nvarchar(8)]、起运地[nvarchar(40)]、目的地[nvarchar(8)]

运单编号为:"88888888"的跟踪记录、起运地:上海、目的地、北京
2006/06/21 14:28 已提走
2006/06/21 14:24 提货中
2006/06/21 14:24 回单登记
2006/06/21 14:15 接收下转
2006/06/21 05:15 下转
2006/06/20 17:44 到货
2006/06/17 21:19 发货
2006/06/14 22:01 接收上转
2006/06/14 20:15 上转
2006/06/14 19:53 开单

我做了一个存储过程,目的提取时间

我用A写法:([运行:sc2] 成功通过,提取出了开单时间:‘2006/06/14 19:53’)
CREATE PROCEDURE sc2 /*@begin char(10)*/
AS
select substring(跟踪记录,patindex ('%开单%',跟踪记录)-17,16) as 时间
from 运单跟踪表
where 运单编号='88888888'
GO

我用B写法:([运行:sc2 '开单'] 未成功通过,提取不出开单时间,程序运行结果为‘空’)
CREATE PROCEDURE sc2 @begin char(10)
AS
select substring(跟踪记录,patindex ('%@begin%',跟踪记录)-17,16) as 时间
from 运单跟踪表
where 运单编号='88888888'
GO

两个存储过程的不同之处分别在:程序的第一行和第三行。
为什么B写法运行失败?我应该如何做才能取得想要的效果。
请高手支招啊。!太感谢了。

向版主反映这个帖子
xyphoenix - 经理 五级 的方法我试过,不行啊
红色的石头312 - 魔法学徒 一级 也不行啊

select substring(跟踪记录,patindex ('%'+@begin+'%',跟踪记录)-17,16) as 时间

select substring(跟踪记录,patindex ('%+@begin+%',跟踪记录)-17,16) as 时间
'%@begin%' 有问题