So sánh sự khac nhau theo ngày, giờ, phút và giây giữa 2 ngày trong sql server
Wednesday, January 30, 2013 3:01:29 AM
Có rất nhiều người thường đặt câu hỏi liên quan tới việc tìm ra sự khác nhau giữa 2 ngày trong sql server. Với kết quả được mong đợi là Days, Hours, Minute và Seconds. Đoạn truy vấn dưới đây sẽ mô tả cách để tìm ra sự khác nhau giữa 2 ngày trong Sql server:
Câu truy vấn ở trên khá đơn giản. Trước tiên chúng ta tính toán tổng số seconds trong ngày và lưu trữ chúng trong một biến @TotalSec. Sau đó, chúng ta sử dụng hàm DATEDIFF - tính toán sự khác nhau giữa 2 ngày (được quy đổi ra second) và lưu trữ trong một biến khác. Cuối cùng, chúng ta sử dụng hàm CONVERT để áp dụng một số tính toán và lấy ra được sự khác nhau giữa 2 ngày theo days, hours, minutes và seconds.
DECLARE @Startdate DATETIME, @Enddate DATETIME SET @Startdate = '2011-01-31 12:00:00' SET @Enddate = '2011-02-07 23:59:59' -- Tổng số seconds trong 1 ngày DECLARE @TotalSec int SET @TotalSec = 24*60*60; -- Chuyển đổi DateDiff vào seconds DECLARE @DiffSecs int SET @DiffSecs = DATEDIFF(SECOND, @Startdate, @Enddate) SELECT CONVERT(char(2), (@DiffSecs/@TotalSec))as [Days], CONVERT(char(2), ((@DiffSecs%@TotalSec)/3600)) as [Hours], CONVERT(char(2), (((@DiffSecs%@TotalSec)%3600)/60)) as [Minutes], CONVERT(char(2), (((@DiffSecs%@TotalSec)%3600)%60)) as [Seconds]
Câu truy vấn ở trên khá đơn giản. Trước tiên chúng ta tính toán tổng số seconds trong ngày và lưu trữ chúng trong một biến @TotalSec. Sau đó, chúng ta sử dụng hàm DATEDIFF - tính toán sự khác nhau giữa 2 ngày (được quy đổi ra second) và lưu trữ trong một biến khác. Cuối cùng, chúng ta sử dụng hàm CONVERT để áp dụng một số tính toán và lấy ra được sự khác nhau giữa 2 ngày theo days, hours, minutes và seconds.






