EXEC ('SELECT 日期,最低气温,最高气温 FROM '+@RegionName+' WHERE 日期 BETWEEN @BeginningDate AND @EndingDate ')

解决方案 »

  1.   

    BTW:'2001/01/01','2001/12/31'参数是可行的,比如我在查询分析器中执行:
    SELECT 日期,最低气温,最高气温 FROM 广州 WHERE 日期 BETWEEN '2001/01/01' AND '2001/12/31'
    就没有问题!
      

  2.   

    txlicenhe(马可&不做技术高手),我试一下:)
      

  3.   

    CREATE PROCEDURE spWeatherData
    @RegionName nvarchar(10),
    @BeginningDate DateTime,
    @EndingDate DateTime
    AS
    EXEC ('SELECT 日期,最低气温,最高气温 FROM '+@RegionName+' WHERE 日期 BETWEEN '+ '''' + @BeginningDate+ ''''+' AND '+''''+@EndingDate+'''')
    GO
      

  4.   

    crazycyber(没新意) ,你的是对的!
     告诉我连加几个 '''' 是什么用意啊?
     谢谢!!!
      

  5.   

    给你一个例题
    create  table ai (i datetime,di varchar(100))
    insert into ai select '20030918','hn'
    insert into ai select '20030918','hn'
    insert into ai select '20030901','hn'
    insert into ai select '20031001','gd'
    insert into ai select '20031001','gd'
    gocreate proc proc_1
    @stime datetime,@etime datetime,@di varchar(100)
    as
    declare @sql nvarchar(4000)
    select @sql='select * from ai where i BETWEEN @stime and @etime and di=@di'
    print @sql
    exec sp_executesql @sql,
    N'@stime datetime,@etime datetime,@di varchar(100)',
    @stime=@stime,@etime=@etime,@di=@digoexec proc_1 '2003/09/01','2003/10/01','hn'
      

  6.   

    create  table aii (i datetime,di varchar(100))
    insert into aii select '20030918','hn'
    insert into aii select '20030918','hn'
    insert into aii select '20030901','hn'
    insert into aii select '20031001','gd'
    insert into aii select '20031001','gd'
    gocreate  table ai (i datetime,di varchar(100))
    insert into ai select '20030918','hn'
    insert into ai select '20030918','hn'
    insert into ai select '20030901','hn'
    insert into ai select '20031001','gd'
    insert into ai select '20031001','gd'
    gocreate proc proc_1
    @stime datetime,@etime datetime,@di varchar(100),@tablename nvarchar(100)
    as
    declare @sql nvarchar(4000)
    select @sql='select * from '+@tablename+'  where i BETWEEN @stime and @etime and di=@di'
    print @sql
    exec sp_executesql @sql,
    N'@stime datetime,@etime datetime,@di varchar(100)',
    @stime=@stime,@etime=@etime,@di=@digoexec proc_1 '2003/09/01','2003/10/01','hn','ai'
    go
    exec proc_1 '2003/09/01','2003/10/01','hn','aii'
    go
      

  7.   

    EXEC ('SELECT 日期,最低气温,最高气温 FROM '+@RegionName+' WHERE 日期 BETWEEN '''+convert(varchar(10),@BeginningDate,120)+''' AND '''+convert(varchar(10),@EndingDate,120)+'''')