Chỉ cần trừ hai giá trị ngày giờ và nhân với 24:
Select Cast((@DateTime2 - @DateTime1) as Float) * 24.0
một tập lệnh thử nghiệm có thể là:
Declare @Dt1 dateTime Set @Dt1 = '12 Jan 2009 11:34:12'
Declare @Dt2 dateTime Set @Dt2 = getdate()
Select Cast((@Dt2 - @Dt1) as Float) * 24.0
Điều này hoạt động vì tất cả lịch ngày được lưu trữ bên trong dưới dạng một cặp số nguyên, số nguyên đầu tiên là số ngày kể từ ngày 1 tháng 1 năm 1900 và số nguyên thứ hai (đại diện cho thời gian) là số ( 1 ) dấu tích kể từ Nửa đêm. (Đối với SmallDatetimes, số nguyên phần thời gian là số phút kể từ nửa đêm). Bất kỳ phép tính nào được thực hiện trên các giá trị đều sử dụng phần thời gian dưới dạng một phần nhỏ của ngày. 6 giờ sáng = 0,25, trưa = 0,5, v.v ... Xem liên kết MSDN tại đây để biết thêm chi tiết.
Vì vậy, Cast ((@ Dt2 - @ Dt1) as Float) cung cấp cho bạn tổng số ngày giữa hai lịch hẹn ngày. Nhân với 24 để chuyển đổi thành giờ. Nếu bạn cần tổng số phút, hãy Nhiều theo phút mỗi ngày (24 * 60 = 1440) thay vì 24 ...
LƯU Ý 1 : Dấu này không giống như dấu chấm dotNet hoặc javaScript - dấu tích này khoảng 3,33 mili giây.