我查询到了一个时间然后对时间进行比较怎么做呢关键是怎么转换呢。
因为查询到的是datetime类型的。
(select Max(dAddDate) from (select * from (select * from Resources where cNot=1)where iClassID=@Categorie))<@dAddDate(select Max(dAddDate) from (select * from (select * from Resources where cNot=1)where iClassID=@Categorie))这个是我查询到的一个@dAddDate这是在存储过程中定义的一个,怎么转换呢?
急啊。急求答案啊。有哪位高手帮帮忙啊。

解决方案 »

  1.   

    @dAddDate可以直接定义成日期类型,也可以定义成字符串,只要字符串是日期格式的就行了
      

  2.   

    你把两个时间都统一转换: convert(char(8),时间,120)
    再作比较
      

  3.   

    如果你一定要转换就用convert(datetime,@dAddDate)
      

  4.   

    不用吗?我两个都是datetime类型的也
      

  5.   

    过程参数定义的类型是什么?你又是怎么调用过程的。
    一般的,如果输入的参数符合标标准日期格式,只要被比较的两个值其中有一个datetime型,系统都会将另一个值隐式转为datetime型
      

  6.   

    你的语句有问题,最起码要写这样才能在存储过程里 执行那个if (select Max(dAddDate) 
     from (select * 
    from (select * 
    from Resources 
    where cNot=1)a 
    where iClassID=@Categorie)b 
     )<@dAddDate
    begin
    ....
    end
    else
    begin
    ....
    end或者 
    declare @date datetimeselect @date=Max(dAddDate) 
    from (select * 
    from (select * 
    from Resources 
    where cNot=1)a 
    where iClassID=@Categorie)b 
    if @date<@dAddDate
    begin
     ...
    end 
    else
    begin
    ...
    end
      

  7.   

    字符串转为时间
    convert(datetime,'2010-06-24 8:00:00.05',120)