SQL SERVER:
create proc Check
   @userclass char(10)
as
declare @r int
select @r=0IF EXISTS (
select * from TableName
where class=@userclass
and convert(DATETIME,convert(CHAR(8),GETDATE(),108))>=convert(DATETIME,convert(CHAR(8),start_time,108))
and convert(DATETIME,convert(CHAR(8),GETDATE(),108))<=convert(DATETIME,convert(CHAR(8),end_time,108))
)SELECT @r=0GO

解决方案 »

  1.   

    写错了:
    create proc Check
      @userclass char(10)
    as
    declare @r int
    select @r=0IF EXISTS (
    select * from TableName
    where class=@userclass
    and convert(DATETIME,convert(CHAR(8),GETDATE(),108))>=convert(DATETIME,convert(CHAR(8),start_time,108))
    and convert(DATETIME,convert(CHAR(8),GETDATE(),108))<=convert(DATETIME,convert(CHAR(8),end_time,108))
    )SELECT @r=1GO
      

  2.   


    create  proc test @strUser varchar(3),@time varchar(20),@ret bit OUTPUT
    ASdeclare @p varchar(20)
    --set @p='06:00:00'    --測試資料SET @Ret=0
    IF  (select COUNT(*) from #tmp where class=@struser and @time between start_time and end_time)>0
    SET @Ret=1
    --start_time跟 end_time類型都為varchar(20)
      

  3.   

    发现还是写少了一句:
    create proc Check
      @userclass char(10)
    as
    declare @r int
    select @r=0IF EXISTS (
    select * from TableName
    where class=@userclass
    and convert(DATETIME,convert(CHAR(8),GETDATE(),108))>=convert(DATETIME,convert(CHAR(8),start_time,108))
    and convert(DATETIME,convert(CHAR(8),GETDATE(),108))<=convert(DATETIME,convert(CHAR(8),end_time,108))
    )SELECT @r=1return @rGO
      

  4.   

    我觉得你应该用函数如:
    create fumction check(@userclass char(10)) 
      as
    set check=0
    IF EXISTS (
    select * from TableName
    where class=@userclass
    and convert(DATETIME,convert(CHAR(8),GETDATE(),108))>=convert(DATETIME,convert(CHAR(8),start_time,108))
    and convert(DATETIME,convert(CHAR(8),GETDATE(),108))<=convert(DATETIME,convert(CHAR(8),end_time,108))
    )
    set check=1
    return
    go