Tính toán với ngày tháng

SQL Server trung cấp

Ginger Grant

Instructor

DATEPART

DATEPART dùng để xác định phần của ngày mà bạn muốn tính. Một số viết tắt phổ biến:

  • DD cho Day (ngày)
  • MM cho Month (tháng)
  • YY cho Year (năm)
  • HH cho Hour (giờ)
SQL Server trung cấp

Hàm ngày tháng thường dùng trong T-SQL

  • DATEADD(): Cộng hoặc trừ giá trị datetime
    • Luôn trả về một ngày
  • DATEDIFF(): Lấy chênh lệch giữa hai giá trị datetime
    • Luôn trả về một số
SQL Server trung cấp

DATEADD

Để cộng hoặc trừ một giá trị để ra ngày mới, dùng DATEADD()

DATEADD (DATEPART, number, date) 
  • DATEPART: Đơn vị đo (DD, MM, …)
  • number: Số nguyên để cộng/trừ
  • date: Giá trị datetime
SQL Server trung cấp

Tính ngày với DATEADD (I)

Ngày nào là 30 ngày sau 21/06/2020?

SELECT DATEADD(DD, 30, '2020-06-21')
+-----------------------------+ 
|(No Column Name)             | 
|-----------------------------+ 
|2020-07-21 00:00             | 
+-----------------------------+
SQL Server trung cấp

Tính ngày với DATEADD (II)

Ngày nào là 30 ngày trước 21/06/2020?

SELECT DATEADD(DD, -30, '2020-06-21')
+-----------------------------+ 
|(No Column Name)             | 
|-----------------------------+ 
|2020-05-22 00:00             | 
+-----------------------------+
SQL Server trung cấp

DATEDIFF

Trả về một ngày sau khi cộng hoặc trừ một số vào ngày gốc

DATEDIFF (datepart, startdate, enddate) 
  • datepart: Đơn vị đo (DD, MM, …)
  • startdate: Ngày bắt đầu
  • enddate: Ngày kết thúc (datetime)
SQL Server trung cấp

Tính ngày với DATEDIFF

SELECT DATEDIFF(DD, '2020-05-22', '2020-06-21') AS Difference1,
       DATEDIFF(DD, '2020-07-21', '2020-06-21') AS Difference2
+--------------------+--------------------+ 
|Difference1         |Difference2         |
+--------------------+--------------------+
|30                  |-30                 |
+--------------------+--------------------+
SQL Server trung cấp

Cùng luyện tập nào!

SQL Server trung cấp

Preparing Video For Download...