2013-02-05 35 views
5

Tôi muốn tính toán sự khác biệt giờ chính xác giữa hai biến datetime. Sự khác biệt giờ nên được chính xác như thế này:Sự khác biệt giữa hai ngày chính xác số giờ trong SQL

1.5 
2 
6.25 

Bất kỳ ai xin vui lòng giúp out..Thanks trước ...

+0

6,25 = bao nhiêu giờ và phút? – TechDo

+0

@techdo chắc chắn bạn có thể làm việc ra houy nhiều phút có trong 0,25 của một giờ? – Tobsey

Trả lời

18

Bạn có thể sử dụng DATEDIFF để tìm sự khác biệt trong vài phút và chuyển đổi đó vào giờ:

select datediff(mi, startdate, enddate) 

Giả 1,5 có nghĩa là 1 giờ và 30 phút bạn chỉ có thể phân chia kết quả của 60:

select datediff(mi, startdate, enddate)/60.0 
2

nó sẽ giúp bạn ....

Declare @Date1 dateTime 
    Declare @Date2 dateTime 
    Set @Date1 = '22:30:00' 
    Set @Date2 = '00:00:00' 
    Select Cast((@Date1 - @Date2) as Float) * 24.0 
1

Vui lòng thử:

declare @dt1 datetime, @dt2 datetime, @Seconds int 
select @dt1='2013-02-05 14:05:55.113', @dt2 =getdate() 
set @Seconds=datediff(second, @dt1, @dt2) 

    declare @Hour nvarchar(50) 
    declare @Min nvarchar(50) 
    declare @MinTemp int   
    if @Seconds >0 
    begin 
    set @Hour=cast((@Seconds/3600) as nvarchar(20)) +' Hrs ' 
    set @MinTemp= (@Seconds % 3600)/60 
    set @Min=cast(@MinTemp as nvarchar(20)) 
    if @MinTemp<10 
     select @Hour+'0'[email protected] +' Min' 
    else 
     select @[email protected] +' Min' 
    end 
    else 
    select '00 Hrs 00 Min' 
2

Giữ nó đơn giản, con trai.

declare @date1 datetime 
declare @date2 datetime 

select @date1 = GETDATE(); 
select @date2 = '2013-02-02 14:05' 

select DATEDIFF(hh, @date2, @date1) 


Results 
----------- 
71 

(1 row(s) affected) 
+5

'DATEDIFF' trả về một số nguyên. Do đó nó sẽ không bao giờ cho phần phân đoạn, như trong vài phút. – Tobsey

0

Để có được chính xác thời gian khác nhau trong HH: MM thử đoạn code dưới đây trong MS-SQL

Declare @InTime datetime='2017-11-27 10:00:00', 
@OutTime datetime='2017-11-27 11:15:00' 

SELECT CONVERT(varchar(5),DATEADD(minute,DATEDIFF(minute,@InTime,@OutTime),0), 114) 
----------- 
Result 
01:15 
Các vấn đề liên quan