SQL và các hàm xử lý kiểu dữ liệu Date thông dụng

Các hàm xử lý kiểu dữ liệu Date thông dụng trong SQL

Trong quá trình làm việc với cơ sở dữ liệu, kiểu dữ liệu Date là một thành phần không thể thiếu, đặc biệt khi cần phân tích và xử lý thông tin theo thời gian. SQL cung cấp nhiều hàm hỗ trợ thao tác với ngày tháng như trích xuất, tính toán, định dạng lại dữ liệu. Trong bài viết này, UniTrain sẽ giới thiệu đến bạn những hàm ngày tháng phổ biến trong SQL cùng ví dụ minh họa thực tế, giúp bạn áp dụng hiệu quả vào công việc. 

Lấy ngày hiện tại

Lấy ngày và giờ hiện tại của hệ thống là một yêu cầu phổ biến trong các giao dịch, xử lý dữ liệu hoặc lên lịch công việc. 

GETDATE()

Hàm GETDATE() dùng để lấy ngày và giờ hiện tại từ máy chủ đang chạy. Nó trả về kết quả dưới dạng theo định dạng 'YYYY-MM-DD hh:mm:ss.mmm', thời gian mà hàm trả về chính là thời gian của hệ điều hành máy chủ.

SELECT GETDATE() — 2025-05-12 04:01:43.573

Các hàm tính toán ngày tháng

DATEADD

Hàm DATEADD được sử dụng để thao tác với giá trị ngày và giờ dựa trên các tham số được chỉ định. Chúng ta có thể cộng hoặc trừ một giá trị số vào một ngày giờ cụ thể để tính các mốc thời gian trong tương lai hoặc quá khứ.

DATEADD (datepart, number, date)

 

  • datepart là phần của ngày (ví dụ: năm, tháng, ngày…) mà bạn muốn cộng thêm giá trị số vào.
  • number là một giá trị số nguyên sẽ được cộng (hoặc trừ nếu âm) vào phần datepart đã chỉ định.
  • date là giá trị ngày cụ thể mà bạn muốn cộng thêm (hoặc trừ đi) số lượng đã chỉ định.
-- Thêm 7 ngày vào ngày hiện tại
SELECT DATEADD(DAY, 7, GETDATE()) AS NgaySau7Ngay;

-- Trừ 2 tháng từ ngày hiện tại
SELECT DATEADD(MONTH, -2, GETDATE()) AS HaiThangTruoc;

-- Thêm 1 năm vào một ngày cụ thể
SELECT DATEADD(YEAR, 1, '2025-01-01') AS MotNamSau;

 

Hàm DATEDIFF() dùng để tính khoảng cách giữa hai mốc thời gian, và nó sẽ trả về một con số nguyên (có thể âm hoặc dương). Đơn vị của kết quả (ngày, tháng, năm, giờ…) phụ thuộc vào tham số datepart mà bạn chọn.

DATEDIFF(datepart, start_date, end_date)

 

  • datepart: Đơn vị thời gian mà bạn muốn tính sự khác biệt, như là năm, tháng, ngày, giờ, phút, giây, v.v. 
  • startdate: Ngày bắt đầu (hoặc datetime, thời gian, timestamp, v.v.) 
  • enddate: Ngày kết thúc (hoặc datetime, thời gian, timestamp, v.v.) 
SELECT DATEDIFF(year,'2015-01-01','2018-01-01');  --3

SELECT DATEDIFF(month,'2015-01-01','2018-01-01'); --36

ISDATE() 

Hàm ISDATE() được sử dụng để kiểm tra xem một giá trị phải một giá trị hợp lệ của kiểu dữ liệu DATE, TIME hoặc DATETIME hay không. 

ISDATE(expression)

 

  • expression: Là chuỗi ký tự hoặc biểu thức có thể giải quyết thành chuỗi ký tự. Độ dài của chuỗi này phải nhỏ hơn 4,000 ký tự.
  • expression có thể là giá trị của kiểu dữ liệu.
  • expression không thể là giá trị của kiểu DATETIME hoặc SMALLDATETIME.
  • Nếu expression là giá trị DATETIME2, hàm sẽ trả về 0.

Lưu ý quan trọng: 

  • Đối với kiểu dữ liệu DATE: Khoảng giá trị có thể là từ 0001-01-01 đến 9999-12-31.
  • Đối với kiểu dữ liệu DATETIME: Khoảng giá trị là từ 1753-01-01 đến 9999-12-31.
SELECT ISDATE(‘2025-05-12’) AS IsValidDate; — Kết quả: 1 (Ngày hợp lệ)

Kết luận

Trong quá trình làm việc với cơ sở dữ liệu, việc xử lý và thao tác với dữ liệu ngày tháng là một phần quan trọng, giúp phân tích, tính toán, và lên kế hoạch cho các công việc liên quan đến thời gian. SQL cung cấp nhiều hàm hữu ích để giúp người dùng dễ dàng thao tác với ngày tháng.

Sử dụng thành thạo các hàm này giúp tối ưu hóa quá trình làm việc với dữ liệu ngày tháng trong SQL, hỗ trợ người dùng trong việc lập lịch, phân tích dữ liệu thời gian, và tính toán các khoảng cách giữa các mốc thời gian một cách chính xác.

Theo dõi Fanpage UniTrain để khám phá thêm nhiều thông tin hữu ích nhé.

Xem thêm

Ứng dụng SQL trong xử lý dữ liệu
Phân biệt WHERE và HAVING trong SQL
Xử lý các giá trị NULL với ISNULL và COALESCE trong SQL

Bài viết liên quan
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi Financial Student Contest (FSC) mùa 13 – CLB Tài chính – Chứng khoán (SeSC) – Đại học Ngoại Thương CSII TP. HCM (FTU2)

Chiều tối ngày 13/06/2025, Chung kết cuộc thi Financial Student Contest (FSC) mùa 13 do CLB Tài chính – Chứng khoán (SeSC) thuộc Đại học Ngoại Thương CSII TP. HCM (FTU2)

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi myInsight – MDS Datathon Challenge 2025 – CLB Toán ứng dụng & Khoa học dữ liệu (MDS) – CSII Đại học Ngoại Thương TP. HCM (FTU2)

Chiều ngày 08/06/2025 vừa qua, cuộc thi myInsight – MDS Datarthon Challenge 2025 đã chính thức tiến đến vòng chung kết dưới sự góp mặt của top 5 đội thi xuất

Xem thêm
Cảm nhận học viên khóa Excel for Analysts

“Mình rất hài lòng về tính ứng dụng thực tế và khả năng nâng cao hiệu quả công việc của khóa học.” Anh Nguyễn Trung Hòa – nhân sự ngành Kế

Xem thêm
Một số hàm sắp xếp (Sort) phổ biến trong Numpy

Sắp xếp (Sort) là một thao tác phổ biến trong phân tích dữ liệu và lập trình. Nó liên quan đến việc sắp xếp các phần tử trong một tập hợp theo

Xem thêm