Làm cách nào để tính chênh lệch tính bằng giây giữa hai ngày trong MySQL?
Thí dụTrả về sự khác biệt giữa hai giá trị ngày, tính bằng năm Show
CHỌN DATEDIFF(năm, '25/08/2017', '25/08/2011') AS DateDiff; Tự mình thử »Định nghĩa và cách sử dụngHàm DATEDIFF() trả về sự khác biệt giữa hai ngày cú phápDATEDIFF(khoảng thời gian, ngày1, ngày2) Giá trị tham sốTham sốDescriptionintervalBắt buộc. Phần trở lại. Có thể là một trong các giá trị sau
chi tiết kỹ thuậthoạt động trong. Máy chủ SQL (bắt đầu từ năm 2008), Cơ sở dữ liệu Azure SQL, Kho dữ liệu Azure SQL, Kho dữ liệu song songThêm ví dụThí dụTrả về sự khác biệt giữa hai giá trị ngày tháng CHỌN DATEDIFF(tháng, '25/08/2017', '25/08/2011') AS DateDiff; Tự mình thử »Thí dụTrả về sự khác biệt giữa hai giá trị ngày, tính bằng giờ CHỌN DATEDIFF(giờ, '25/08/2017 07. 00', '25/08/2017 12. 45') AS DateDiff; Tự mình thử »Với hàm thời gian SQL Server DATEDIFF, có thể tính chênh lệch giữa hai ngày theo giờ, phút và giây nhưng mỗi lần chỉ tính một đơn vị. Ví dụ: chỉ giây, hoặc chỉ phút hoặc chỉ giờ. Tập lệnh SQL Server này sử dụng hàm DATEDIFF và tính toán theo giờ, phút và giây. Vì vậy, việc tính toán sự khác biệt giữa ngày bắt đầu và ngày kết thúc không đơn giản với SQL Server. Bài đăng này chỉ cho bạn cách thực hiện với một truy vấn ví dụ đơn giản, được giải thích từng bước Mục lục 1. Chênh lệch thời gian tính bằng giờ phút và giây với SQL ServerDo đó, làm ví dụ, các truy vấn SQL đơn giản này đang sử dụng SQL Server DATEDIFF, DATEPART hoặc hàm toán học modulo với hai dấu thời gian chênh lệch chính xác một giờ. Và mỗi truy vấn chỉ cho một đơn vị. Nói cách khác, chúng ta phải kết hợp hoặc nối nhiều truy vấn để có được giờ, phút và giây trong một truy vấn SQL duy nhất. Bên dưới mỗi truy vấn đang trả về một đơn vị Các truy vấn bên dưới hiển thị 3 loại kết quả khác nhau. Tuy nhiên, mỗi đơn vị thời gian không phải là thời gian mà chỉ là một đơn vị duy nhất. Vì vậy, bắt buộc phải nối chúng và chuyển đổi chúng
-- Declare and initialize two variables with exactly one hour of difference: 9 - 8 = 1h DECLARE @DateStart DATETIME DECLARE @DateEnd DATETIME SET @DateStart = '2022-03-10 08:00:00' SET @DateEnd = '2022-03-10 09:00:00' -- SQL Query returns difference in seconds : 3600 seconds SELECT DATEDIFF(SECOND, @DateStart, @DateEnd) AS [Difference in Seconds] -- SQL Query returns difference in minutes : 60 minutes SELECT DATEDIFF(MINUTE, @DateStart, @DateEnd) AS [Difference in Minutes] -- SQL Query returns difference in hours : 1 hour SELECT DATEDIFF(HOUR, @DateStart, @DateEnd) AS [Difference in Hours] Hoặc ở định dạng ngắn gọn hơn, chỉ sử dụng 3 dòng mã, nhưng chỉ tính toán sự khác biệt trong vài phút -- Declare and initialize two variables with exactly one hour of difference: 9 - 8 = 1h DECLARE @DateStart DATETIME = '2022-03-10 08:00:00', @DateEnd DATETIME = '2022-03-10 09:00:00'; -- SQL Query returns difference in hours : 1 hour SELECT DATEDIFF(HOUR, @DateStart, @DateEnd) AS [Difference in Hours]; Tìm bên dưới ảnh chụp màn hình sau khi thực hiện truy vấn bằng SSMS Tính toán sự khác biệt giữa hai ngày trong SQL Server 2. Sự khác biệt giữa hai dấu thời gian trong một truy vấn T-SQLChẳng hạn, để có được sự khác biệt về giờ, phút và giây, hãy sử dụng truy vấn này, truy vấn này chỉ hoạt động nếu số giờ nhỏ hơn 99. Ngoài ra, hãy thay đổi tổng số tính bằng giây theo Giờ, Phút và Giây, ví dụ với 3 giờ = 3600 * 3 = 14400 DECLARE @TimeInSeconds INT SET @TimeInSeconds = 14400 SELECT RIGHT('0' + CAST(@TimeInSeconds / 3600 AS VARCHAR),2) + ':' + RIGHT('0' + CAST((@TimeInSeconds / 60) % 60 AS VARCHAR),2) + ':' + RIGHT('0' + CAST(@TimeInSeconds % 60 AS VARCHAR),2) 3. Tính chênh lệch bằng hàm DATEADDThật vậy, các truy vấn SQL này tính toán chênh lệch thời gian bằng cách sử dụng giây đầu tiên (nhân với một giờ tính bằng giây là 60 * 60 = 3600. Sau đó, sử dụng mili giây (nhân với một giờ tính bằng mili giây là 60 * 60 * 1000 = 3600 * 1000). Chắc chắn, cuối cùng nó cũng hiển thị kết quả mà không cần mili giây bằng cách sử dụng hàm CONVERT và định dạng ngày dữ liệu 108 -- Using the seconds as a base for conversion select CONVERT(varchar, dateadd(s, 3 * 3600 , getdate()), 108) AS [Hours Minutes Seconds] -- Using the milliseconds as a base for conversion select CONVERT(varchar, dateadd(ms, 3 * 3600 * 1000, getdate()), 108) AS [Hours Minutes Seconds] 4. Tính chênh lệch giữa hai ngày bằng hàm DATEPARTMột tùy chọn khác để tính chênh lệch theo phút và giây là sử dụng hàm T-SQL DATEPART DECLARE @DateStart DATETIME = '2022-03-10 08:00:00', @DateEnd DATETIME = '2022-03-10 09:00:00'; SELECT DATEPART(HOUR, @DateEnd) - DATEPART(HOUR, @DateStart) as [Difference in Hours], DATEPART(MINUTE, @DateEnd) - DATEPART(MINUTE, @DateStart) as [Difference in Minutes], DATEPART(SECOND, @DateEnd) - DATEPART(SECOND, @DateStart) as [Difference in Seconds]; Kết luận về tính chênh lệch thời gian trong T-SQLTrong bài đăng ngắn này, chúng ta đã thấy cách tính chênh lệch thời gian của SQL Server theo giờ, phút và giây bằng hàm T-SQL DATEDIFF. Trong số nhiều giải pháp khả thi, nên sử dụng nhiều chức năng cùng nhau. Đây là tài liệu chính thức của Microsoft về hàm thời gian SQL Server DATEADD() Làm cách nào để trừ ngày trong MySQL?Hàm DATE_SUB() trừ một khoảng thời gian/ngày từ một ngày và sau đó trả về ngày.
Làm cách nào để tính chênh lệch giữa 2 ngày trong SQL?Hàm DATEDIFF() trả về chênh lệch giữa hai ngày.
Làm cách nào để trích xuất giây từ dấu thời gian trong SQL?Chuỗi thời gian có thể được gán trực tiếp cho biến ngày giờ là 1900-01-01 20. 10. 10. . KHAI BÁO @time datetime = '20. 10. 10' chọn total_seconds =DATEDIFF(giây,0,@thời gian) chọn total_seconds =DATEDIFF(giây,0,'20. 10. 10') |