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ử »Trong MySQL, bạn có thể sử dụng hàm SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';4 để tìm sự khác biệt giữa hai ngày. Cách nó hoạt động là, bạn cung cấp hai đối số (một đối số cho mỗi ngày) và SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';4 sẽ trả về số ngày giữa hai ngày Ví dụ dưới đây cú phápĐầu tiên, đây là cú pháp DATEDIFF(expr1,expr2) Trong đó SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';1 là ngày đầu tiên và SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';2 là ngày thứ hai Ví dụ 1 – Cách sử dụng cơ bảnĐây là một ví dụ để chứng minh SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result'; Kết quả +--------+ | Result | +--------+ | 29 | +--------+ Trong ví dụ này, ngày đầu tiên muộn hơn ngày thứ hai. Trong trường hợp này, chúng tôi nhận được giá trị trả về dương Ví dụ 2 – So sánh với Ngày trước đóNgày đầu tiên không nhất thiết phải muộn hơn ngày thứ hai. Bạn có thể sử dụng ngày sớm hơn cho đối số đầu tiên và nó sẽ trả về giá trị âm. Nếu chúng ta hoán đổi hai đối số xung quanh, chúng ta sẽ nhận được như sau SELECT DATEDIFF('2020-10-01', '2020-10-30') AS 'Result'; Kết quả +--------+ | Result | +--------+ | -29 | +--------+ Ví dụ 3 – Giá trị ngày giờKhi được sử dụng với các giá trị ngày giờ, chỉ phần ngày được sử dụng để so sánh các ngày. Thí dụ SELECT DATEDIFF('2020-10-30 23:59:59', '2020-10-01') AS 'Result 1', DATEDIFF('2020-10-01 23:59:59', '2020-10-30') AS 'Result 2'; Kết quả ________số 8Ví dụ 4 – Truy vấn cơ sở dữ liệuĐây là một ví dụ về việc sử dụng SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';4 trong truy vấn cơ sở dữ liệu. Trong ví dụ này, tôi so sánh cột SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';4 với ngày hôm nay (bằng cách sử dụng hàm SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';5 để trả về ngày hôm nay) Hôm nọ, tôi phải nhanh chóng lấy một số thống kê từ bảng cơ sở dữ liệu. Tôi cần xác định thời gian trung bình để chạy các công việc trong hệ thống xếp hàng. Để làm được điều này, tôi đã sử dụng các phương pháp chênh lệch múi giờ của MySQL. Tôi nghĩ rằng tôi sẽ chia sẻ cách các phương pháp này hoạt động và cách tôi triển khai chúng Để tính toán sự khác biệt giữa hai ngày, MySQL cung cấp cho chúng tôi hai phương pháp khác nhau. SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';7 và SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';8. Cái bạn sử dụng tùy thuộc vào cách bạn muốn định dạng sự khác biệt kết quả DẤU THỜI GIANPhương thức này trả về chênh lệch giữa hai ngày theo đơn vị được cung cấp làm tham số đầu tiên. Ví dụ: nếu chúng tôi muốn biết sự khác biệt giữa hai ngày tính bằng giây SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';1 Điều này tính toán SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';9 trong vài giây Các đơn vị có thể là bất kỳ một trong những điều sau đây. FRAC_SECOND (micro giây), GIÂY, PHÚT, GIỜ, NGÀY, TUẦN, THÁNG, QUÝ hoặc NĂM Ngày được truyền cho phương thức này không cần phải cùng loại. Một cái có thể là DATETIME và cái kia là NGÀY. Nếu cột có loại NGÀY thì nó sẽ được coi là có thời gian nửa đêm TIMEDIFFPhương thức này trả về sự khác biệt giữa hai ngày được định dạng là SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';0 SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';2 Giống như SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';7, điều này tính toán SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';9, nhưng lưu ý rằng các tham số ngày được gọi theo thứ tự ngược lại Không giống như SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';7, cả hai ngày cần phải cùng loại Một ví dụ thực tếBây giờ chúng ta đã thiết lập cách sử dụng các phương thức chênh lệch múi giờ của MySQL, hãy xem xét một trường hợp sử dụng thực tế Như tôi đã đề cập lúc đầu, tôi cần kiểm tra xem hàng đợi của mình mất bao lâu để xử lý công việc. Tôi có một bảng queued_t task chứa thông tin chi tiết về các tác vụ nền. Sử dụng SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';8, tôi có thể xác định các công việc chạy dài nhất và ngắn nhất trong tháng trước SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';3 Điều này đã cho tôi phạm vi thời gian chạy cho hàng đợi của tôi Sau đó, tôi có thể sử dụng SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';7 để tính thời gian trung bình, sử dụng phạm vi tôi vừa tính để chọn một đơn vị thời gian thích hợp |