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.
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é!
Comments are closed.