SET @SQLSTR = 'SELECT TOP 100 from T_Table1 where publishTime between '+convert(varchar(100), @StartTime,23)'+' and '+ convert(varchar(100), @OverTime,23)传入参数后总是无法返回记录,请问是什么问题啊

解决方案 »

  1.   

    publishTime 是什么类型? 字符的?如果是字符的, 则只有同格式的才能比较
      

  2.   

    SET @SQLSTR = 'SELECT TOP 100 from T_Table1 where publishTime between '''+convert(varchar(100), @StartTime,23)+''' and '''+ convert(varchar(100), @OverTime,23)+''''
      

  3.   

    declare  @StartTime datetime
    declare @OverTime datetime
    set @StartTime='2007-1-1'
    set @OverTime='2007-4-1'
    declare @SQLSTR nvarchar(4000)
    ------------------------------------------------
    SET @SQLSTR = 'SELECT TOP 100 * from T_Table1 where convert(varchar(100), Convert(datetime,publishTime),23) between '''+ convert(varchar(100), @StartTime,23)+''' and '''+convert(varchar(100), @OverTime,23)+''''
    ------------------------------------------------
    print @SQLSTR
      

  4.   

    SET @SQLSTR = 'SELECT TOP 100 from T_Table1 
    where publishTime between '''+convert(varchar(100), @StartTime,23)+''' 
    and '''+ convert(varchar(100), @OverTime,23)+''''
      

  5.   

    你的这样的
    SELECT TOP 100 from T_Table1 where publishTime between 2007-01-01 and  2007-04-01
    应该是
    SELECT TOP 100 from T_Table1 where publishTime between '2007-01-01' and '2007-04-01'