你只写了'select top 1  后面没有要选择的列的名称而只有变量 @Check_DateTime_Select 
那计算机怎么知道你要选择哪列?

解决方案 »

  1.   

    Check_DateTime就是我所选择的列的名称呀,有呀
      

  2.   

    建议运行如下代码看看:
    use pubs
    declare @sql2 char(1000)
    declare @Check_DateTime_Select char(400)
    declare @Check_DateTime_Start char(40)
    declare @Check_DateTime_End  char(40)
    set @Check_DateTime_Select = 'hire_date'
    set @Check_DateTime_Start = '1990-12-24'
    set @Check_DateTime_End = '2004-12-20'
    set @sql2 = 'select  top 1 '+ @Check_DateTime_Select +' as Check_DateTime from employee'
    set @sql2 = @sql2 + ' where hire_date >= '+ @Check_DateTime_Start
    set @sql2 = @sql2 + ' and hire_date <= ' +@Check_DateTime_Endexec(@sql2)
    print @sql2
    print @Check_DateTime_Select-------------------------
    --运行结果:   Check_DateTime 1  1992-08-27 00:00:00.000
    -----以下是打印结果:
    select top 1 hire_date
    hire_date
      

  3.   

    你的意思是想让Check_DateTime 列显示为@Check_DateTime_Select 
    但是@Check_DateTime_Select 要有一个 值 ,这个值从哪来你没有指定
      

  4.   

    上面应该改一下:
    set @Check_DateTime_Select = 'Check_DateTime_Select '
    set @sql2 = 'select  top 1 '+ @Check_DateTime_Select +' = Check_DateTime from employee'-------------------------
    --运行结果:   Check_DateTime_Select 1  1992-08-27 00:00:00.000
    -----以下是打印结果:
    select top 1 Check_DateTime_Select 
    Check_DateTime_Select
      

  5.   

    我想取到的值是1992-08-27 00:00:00.000,因为我还要利用这个值来计算,但是你的值好象是Check_DateTime_Select
    我还要用@Check_DateTime_Select来做以下的运算
    select * from a where Check_DateTime = CONVERT(DateTime,@Check_DateTime_Select,121)
      

  6.   

    那就好说了:
    declare @Check_DateTime_Select datetime
    select @Check_DateTime_Select=(select top 1 hire_date from employee)
    select @Check_DateTime_Select