Ad
Thủ Thuật Công Nghệ

Tìm hiểu hàm Datediff trong SQL Server chi tiết

Pinterest LinkedIn Tumblr

Nếu bạn là một lập trình viên mới vào nghề hoặc chuyên viên lập trình lâu năm thì chắc hẳn bạn sẽ tiếp xúc rất nhiều ngôn ngữ thú vị để học tập và tìm hiểu nhất là cách dùng SQL Server. Trong bài viết hôm nay hãy cùng Wiki Lanit tìm hiểu về hàm Datediff trong SQL đơn giản, dễ hiểu.

Tổng quan về Datediff trong SQL Server

DATEDIFF là một hàm cơ bản trong SQL Server, được sử dụng để thực hiện các phép tính dựa trên ngày tháng. Hàm này trả về kết quả là một giá trị số nguyên, đo lường sự chênh lệch giữa hai ngày tháng theo các đơn vị như tháng, năm, phút,  ngày, giây. Định nghĩa chính xác của DATEDIFF trong SQL Server là tính sự khác biệt giữa hai điểm thời gian dựa trên đơn vị thời gian được chọn.

Tổng quan về Datediff trong SQL Server
Tổng quan về Datediff trong SQL Server

 

Một số đặc điểm của hàm Datediff trong SQL gồm:

  • Nằm trong mục hàm Date
  • Mục đích là tìm điểm khác biệt giữa hai ngày tháng
  • Thời gian có thể nằm trong phần Interval cùng phần giá trị ngày tháng 
  • Chấp nhận 3 tham số gồm: Interval (khoảng thời gian), giá trị đầu và giá trị thứ 2 của ngày tháng.

Cú pháp

Hàm Datediff trong SQL có cú pháp sau:

DATEDIFF(dangthoigian, thoigian1, thoigian2)

Trong đó:

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

Các phiên bản (Version)

Hàm Datediff có thể được sử dụng trong những phiên bản sau:

SQL Server 2005, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017.

Ví dụ về Datediff trong SQL

SELECT DATEDIFF(year, '2019/04/06', '2015/09/25');

Ket qua: -4 

SELECT DATEDIFF(yyyy, '2019/04/06', '2022/05/20');

Ket qua: 3

SELECT DATEDIFF(yy, '2019/04/06', '2030/03/24');

Ket qua: 11

SELECT DATEDIFF(month, '2019/04/06', '2019/02/20');

Ket qua: -2

SELECT DATEDIFF(day, '2019/04/06', '2019/04/18');

Ket qua: 12 

SELECT DATEDIFF(hour, '2019/04/06 05:00', '2019/09/29 12:40');

Ket qua: 4231

SELECT DATEDIFF(minute, '2019/04/06 05:00', '2019/01/25 15:45');

Ket qua: -101595

Dùng Datediff so sánh sự khác biệt giữa hai giá trị ngày tháng

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ả:
diff_in_year diff_in_quarter diff_in_month diff_in_dayofyear diff_in_day diff_in_week diff_in_hour diff_in_minute diff_in_second diff_in_millisecond
1 1 1 1 1 0 1 1 1 1

Dùng so sánh ngày trong SQL Server, nhận chênh lệch âm:

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

Kết quả

-3704

Kết luận

Trên đây là thông tin về hàm Datediff trong SQL là gì, đặc điểm nổi bật, hướng dẫn sử dụng, cú pháp và các ví dụ thực tế. Nếu thấy bài viết bổ ích hãy để lại bình luận và nhấn theo dõi để cập nhật các bài viết hữu ích hơn từ Wiki Lanit nhé!

Mình là Tú Anh - Hiện mình đang đảm nhận một số mảng trong chiến dịch Marketing tại LANIT. Mình đã có kinh nghiệm nhiều năm trong mảng kinh doanh online, nên rất hy vọng với những kiến thức mình chia sẻ về lĩnh vực này sẽ thật sự hữu ích đối với các bạn.

Comments are closed.