SQL如何忽略日期只比较时间的小时部分?比如:date1=2010-3-5 08:00:00 ,date2=2010-6-5 09:00:00,比较date2-date1得到的结果是1?

解决方案 »

  1.   

    SELECT GETDATE() AS 日期,DATEPART(HOUR,GETDATE()) AS 小时/**
    日期                      小时
    ----------------------- -----------
    2010-03-19 10:31:20.357 10(1 行受影响)
    **/
      

  2.   

    declare @dt1 datetime,@dt2 datetime
    select @dt1='2010-6-5 09:00:00',@dt2='2010-3-5 08:00:00 '
    select cast(convert(varchar(2),@dt1,8)as int)-cast(convert(varchar(2),@dt2,8)as int)
    /*
    -----------
    1(1 個資料列受到影響)
    */
      

  3.   

    select datepart(hh,'2010-6-5 09:00:00') - datepart(hh,'2010-3-5 08:00:00') /*
                
    ----------- 
    1(所影响的行数为 1 行)
    */
      

  4.   

    DECLARE @date1 SMALLDATETIME,@date2 SMALLDATETIME
    SET @date1 ='2010-3-5 08:00:00'
    set @date2='2010-6-5 09:00:00'
    SELECT datediff(hh,convert(varchar(10),@date1,108),convert(varchar(10),@date2,108))--result
    /*            
    ----------- 
    1(所影响的行数为 1 行)
    */
      

  5.   

    DECLARE @date1 DATETIME
    DECLARE @date2 DATETIMESET @date1 = '2010-3-5 08:00:00'
    SET @date2 = '2010-6-5 09:00:00'SELECT DATEPART(HOUR,@date2) - DATEPART(HOUR,@date1) 
    --1
      

  6.   

    declare @date1 datetime,@date2 datetime
    set @date1='2010-3-5 08:00:00'
    set @date2='2010-6-5 09:00:00'
    select datepart(hh,@date2)-datepart(hh,@date1)
    /*            
    ----------- 
    1(所影响的行数为 1 行)
    */