DECLARE @a char(100)
DECLARE @b char(100)改为DECLARE @a varchar(100)
DECLARE @b varchar(100)即可

解决方案 »

  1.   

    DECLARE @a varchar(100)
    DECLARE @b varchar(100)
    DECLARE @startPosition intset @a='日期'
    set @b='kjlk日期'
    set @startPosition = CHARINDEX(@a,@b,0)print @startPosition
      

  2.   

    DECLARE @a Nvarchar(100)
    DECLARE @b Nvarchar(100)
    DECLARE @startPosition intset @a=N'日期'
    set @b=N'kjlk日期'
    set @startPosition = CHARINDEX(@a,@b,0)print @startPosition
    --5
      

  3.   

    DECLARE @a varchar(100)
    DECLARE @b varchar(100)
    DECLARE @startPosition intset @a='日期'
    set @b='kjlk日期'
    set @startPosition = CHARINDEX(@a,@b,0)print @startPosition
      

  4.   

    varchar和char不一样的,  char后面用控可补全位数,varchar不补位。
      

  5.   


    为什么不是5
    ---------
    因為@a裡的數據是“日期                                                                                                ”,而不是“日期”,char類型會在不足長度的數據後面補充空格。
      

  6.   

    DECLARE @a varchar(100)
    DECLARE @b char(100)
    DECLARE @startPosition intset @a='日期'
    set @b='kjlk日期'
    set @startPosition = CHARINDEX(@a,@b,0)print @startPosition
      

  7.   

    DECLARE @a varchar(100)
    DECLARE @b varchar(100)
    DECLARE @startPosition intset @a=N'日期'
    set @b=N'kjlk日期'
    set @startPosition = CHARINDEX(@a,@b,0)print @startPosition
      

  8.   

    DECLARE @a char(100)
    DECLARE @b char(105)
    DECLARE @startPosition intset @a='日期'
    set @b='kjlk日期'
    set @startPosition = CHARINDEX(@a,@b)print @startPosition--------5