datetime类型的数据 2013-04-26 13:51:10
                   2013-04-27 14:05:05
我要比较这个数据的小时和分钟,就是哪个时间大
datepart()函数能单独获取小时和分钟
怎么样直接比较后面的时间呢?还是用convert截取一下,然后再比较字符串大小?时间比较

解决方案 »

  1.   

    试试:DECLARE @a DATETIME 
    SET @a='2013-04-26 13:51:10'DECLARE @b DATETIME 
    SET @b='2013-04-27 14:05:05'SELECT CASE WHEN (CASE WHEN DATEDIFF(hh,@a,@b)<>0 THEN DATEDIFF(hh,@a,@b) ELSE DATEDIFF(mi,@a,@b)END )>0 THEN 'b时间大'
    ELSE 'a时间大' END 
      

  2.   

    SELECT convert(time,'2013-04-26 13:51:10')--13:51:10.0000000--这样比较即可
      

  3.   

    SQL Server有time数据类型用于存储时间.
      

  4.   

    DECLARE @a DATETIME,@b DATETIME
    SET @a='2013-04-26 13:51:10'
    SET @b='2013-04-27 14:05:05'
    SELECT CASE WHEN CONVERT(CHAR(8),@a,108)>CONVERT(CHAR(8),@b,108) THEN 'a>b' ELSE 'a<=b' END 
      

  5.   

    select DATEDIFF(hh, '2013-04-26 13:51:10'  , '2013-04-27 14:05:05' )select DATEDIFF(dd, '2013-04-26 13:51:10'  , '2013-04-27 14:05:05' ) 
      

  6.   


    DECLARE @a DATETIME SET @a='2013-04-26 13:51:10' 
    DECLARE @b DATETIME SET @b='2013-04-27 14:05:05' SELECT 
    CASE WHEN DATEDIFF(mi,@a,@b)>0 THEN 'b时间大'
    ELSE 'a时间大' END
      

  7.   


    declare @startTime time
    我这样声明一个time类型的变量
    报错:找不到数据类型 time我的是sql 2005