Hàm DATEDIFF trong SQL Server

Thứ tư - 09/10/2024 23:54

DATEDIFF trong SQL Server là gì? Cách dùng hàm DATEDIFF trong SQL Server như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!

Thế giới lập trình vô cùng đa dạng với rất nhiều ngôn ngữ thú vị cho bạn tìm hiểu và học tập. Chỉ từ những dòng code, bạn có thể tạo ra những chương trình, ứng dụng vô cùng hữu ích.

Nếu đang muốn phát triển sự nghiệp trong ngành này, nhất định bạn phải biết cách dùng SQL Server. Nắm vững được nó, bạn dễ dàng quản lý cơ sở dữ liệu khi lập trình.

Học SQL Server về cơ bản không khó. Hãy bắt đầu từ những kiến thức cần thiết nhất. Quantrimang.com có sẵn một lộ trình học tập cho bạn có thể tham khảo. Ở bài viết này, chúng ta sẽ cùng nhau tìm hiểu về hàm DATEDIFF trong SQL Server.

Mô tả

DATEDIFF trong SQL Server là một hàm cơ bản được dùng để triển khai các phép tính dựa trên ngày tháng. Nó cho kết quả là một giá trị số nguyên theo đơn vị ngày tháng như năm, tháng, ngày, phút và giây. Định nghĩa chính thức của Datediff SQL Server là tính sự khác biệt giữa hai ngày tháng.

Hàm DATEDIFF SQL Server có những đặc điểm nổi bật sau:

  • Được dùng để tìm sự khác biệt giữa hai ngày tháng.
  • Thuộc về danh mục hàm Date.
  • Interval - khoảng thời gian, giá trị đầu tiên của ngày tháng và giá trị thứ hai của ngày tháng là 3 tham số được chấp nhận bởi hàm này.
  • Thời gian có thể được bao gồm trong phần interval cùng với phần giá trị ngày tháng của hàm này.

Cú pháp

Để sử dụng hàm DATEDIFF trong SQL Server, ta dùng cú pháp như sau:

DATEDIFF(dangthoigian, thoigian1, thoigian2)

Tham số:

  • dangthoigian: dạng thời gian sử dụng để tính chênh lệch giữa thoigian1 và thoigian2. Nó có thể là một trong những giá trị sau:
    Giá trị Giải thích
    year, yyyy, yy Năm
    quarter, qq, q Quý
    month, mm, m Tháng
    dayofyear Ngày trong năm
    day, dy, y Ngày
    week, ww, wk Tuần
    weekday, dw, w Ngày trong tuần
    hour, hh Giờ
    minute, mi, n Phút
    second, ss, s Giây
    millisecond, ms Milli giây
  • thoigian1, thoigian2: khoảng thời gian để tính chênh lệch.
 

Lưu ý:

  • DATEDIFF có thể được sử dụng trong các phiên bản sau của SQL Server: SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005.

Ví dụ

Hãy xem và khám phá một số ví dụ về hàm DATEDIFF trong SQL Server.

SELECT DATEDIFF(year, '2019/04/28', '2021/04/28');Result: 2SELECT DATEDIFF(yyyy, '2019/04/28', '2021/04/28');Result: 2SELECT DATEDIFF(yy, '2019/04/28', '2021/04/28');Result: 2SELECT DATEDIFF(month, '2019/01/01', '2019/04/28');Result: 3SELECT DATEDIFF(day, '2019/01/01', '2019/04/28');Result: 117SELECT DATEDIFF(hour, '2019/04/28 08:00', '2019/04/28 10:45');Result: 2SELECT DATEDIFF(minute, '2019/04/28 08:00', '2019/04/28 10:45');Result: 165

Dùng hàm DATEDIFF() để so sánh sự khác biệt giữa hai giá trị ngày tháng

Ví dụ này dùng hàm DATEDIFF để so sánh sự khác biệt giữa hai ngày tháng ở các phần khác nhau:

DECLARE 
    @start_dt DATETIME2= '2019-12-31 23:59:59.9999999', 
    @end_dt DATETIME2= '2020-01-01 00:00:00.0000000';

SELECT 
    DATEDIFF(year, @start_dt, @end_dt) diff_in_year, 
    DATEDIFF(quarter, @start_dt, @end_dt) diff_in_quarter, 
    DATEDIFF(month, @start_dt, @end_dt) diff_in_month, 
    DATEDIFF(dayofyear, @start_dt, @end_dt) diff_in_dayofyear, 
    DATEDIFF(day, @start_dt, @end_dt) diff_in_day, 
    DATEDIFF(week, @start_dt, @end_dt) diff_in_week, 
    DATEDIFF(hour, @start_dt, @end_dt) diff_in_hour, 
    DATEDIFF(minute, @start_dt, @end_dt) diff_in_minute, 
    DATEDIFF(second, @start_dt, @end_dt) diff_in_second, 
    DATEDIFF(millisecond, @start_dt, @end_dt) diff_in_millisecond;

Kết quả:

Ví dụ về Datediff trong SQL Server

Dùng hàm DATEDIFF() với cột bảng

Ví dụ sau dùng hàm DATEDIFF() để so sánh ngày tháng vận chuyển được yêu cầu với ngày tàu chạy theo ngày và trả về kết quả đơn hàng đúng hạn hoặc muộn:

SELECT
    order_id, 
    required_date, 
    shipped_date,
    CASE
        WHEN DATEDIFF(day, required_date, shipped_date) < 0
        THEN 'Late'
        ELSE 'OnTime'
    END shipment
FROM 
    sales.orders
WHERE 
    shipped_date IS NOT NULL
ORDER BY 
    required_date;
 

Kết quả:

Ví dụ tính ngày tháng của hàm DATEDIFF trong SQL Server

Chọn các hằng số từ date1 và date2 với giá trị âm

Dùng hàm so sánh ngày trong SQL Server và nhận chênh lệch âm giữa hai giá trị ngày tháng, tính theo ngày.

Ví dụ:

SELECT DATEDIFF(day, '2021/2/1', '2010/12/12');

Kết quả:

-3704

Chọn các hằng số từ date1 và date2 theo giờ

Dùng hàm DATEDIFF() và lấy sự khác biệt giữa hai giá trị ngày tháng, bao gồm thời gian, tính theo giờ.

Ví dụ:

SELECT DATEDIFF(hour, '2019/2/1 09:55', '2020/12/12 07:45');

Kết quả:

16318

Tóm lại, những điều cần ghi nhớ khi dùng hàm DATEDIFF trong SQL Server

  • Hàm DATEDIFF xử lý các giá trị ngày tháng & thời gian dưới dạng đối số.
  • Trình biên dịch phát sinh lỗi nếu thử biến định dạng không phải ngày tháng cho các đối số hàm.
  • Hàm này hữu ích khi bạn cần tìm điểm khác biệt giữa các phần ngày tháng khác nhau của dấu thời gian.

Trên đây là những vấn đề cơ bản về hàm DATEDIFF() trong SQL Server, giúp bạn tính toán sự khác biệt giữa hai giá trị ngày tháng. Hi vọng bài viết hữu ích với các bạn.

Nguồn tin: Quantrimang.com:

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

  Ý kiến bạn đọc

THỐNG KÊ TRUY CẬP
  • Đang truy cập40
  • Máy chủ tìm kiếm4
  • Khách viếng thăm36
  • Hôm nay14,252
  • Tháng hiện tại159,619
  • Tổng lượt truy cập9,865,471
QUẢNG CÁO
Phan Thanh Phú
Quảng cáo 2
Liên kết site
Đăng nhập Thành viên
Hãy đăng nhập thành viên để trải nghiệm đầy đủ các tiện ích trên site
Thăm dò ý kiến

Bạn thấy Website cần cải tiến những gì?

Lịch Âm dương
Máy tính
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây