SQL存储过程(含变量)like语句实现不了

USE[DBXXX]GO/******对象:StoredProcedure[dbo].[Proc_DepartSellForm]脚本日期:12/20/201214:46:... USE [DBXXX]
GO
/****** 对象: StoredProcedure [dbo].[Proc_DepartSellForm] 脚本日期: 12/20/2012 14:46:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[Proc_EVA_DepartSellForm]
-- Add the parameters for the stored procedure here
@Begtime datetime,
@Endtime datetime,
@Depart char

AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- SET NOCOUNT ON;
declare @beg datetime
declare @End datetime
declare @dept nvarchar
select @beg=@Begtime
select @End=@Endtime
select @dept=@Depart

select *
from table
where fdate>=@beg and fdate<=@end and fname like '%'+@dept+'%'

END

============================================
执行语句是
set nocount ON
exec Proc_EVA_DepartSellForm '2012-11-1','2012-12-1','北京'
就是要查在beg到end的时间里,部门是北京的单据
结果运行:无结果
去掉 fname like '%'+@dept+'%' 能显示所有部门的单据
如果select @dept=‘北京' 也能实现预想效果

似乎是@Depart变量的问题
求教各位大神是哪写错了
展开
 我来答
szm341
2012-12-20 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5153万
展开全部
@Depart char
首先不要用char,除非你能明确确定字数
其次字符类型一定要标注长度
改为@Depart nvarchar(20)试试
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式