Khi làm việc với cơ sở dữ liệu MySQL, việc trích xuất thông tin về ngày trong tuần từ một trường ngày tháng là một thao tác cơ bản nhưng rất hữu ích. Để thực hiện điều này, người dùng có thể sử dụng hàm DAYOFWEEK()
.
Hàm DAYOFWEEK()
trong MySQL cho phép bạn xác định ngày trong tuần của một giá trị ngày tháng cụ thể. Hàm này trả về một số nguyên từ 1 đến 7, tương ứng với các ngày trong tuần, bắt đầu từ Chủ Nhật (1) và kết thúc vào Thứ Bảy (7).
Cú pháp của hàm DAYOFWEEK()
Cú pháp của hàm rất đơn giản:
DAYOFWEEK(date)
date
là một giá trị ngày tháng hợp lệ mà bạn muốn kiểm tra.
Ví dụ sử dụng hàm DAYOFWEEK()
Để thấy rõ hơn về cách sử dụng, hãy xem xét một số ví dụ cụ thể:
Ví dụ 1: Kiểm tra ngày cụ thể
Giả sử bạn muốn biết ngày trong tuần của ngày 12 tháng 10 năm 2023:
SELECT DAYOFWEEK('2023-10-12') AS day_of_week;
Kết quả trả về sẽ là một số nguyên, thể hiện ngày trong tuần của ngày đó.
Ví dụ 2: Sử dụng cùng với bảng dữ liệu
Giả sử bạn có một bảng tên là events
chứa thông tin về các sự kiện, trong đó có một cột event_date
lưu trữ các giá trị ngày tháng. Bạn muốn liệt kê các ngày trong tuần cho tất cả các sự kiện:
SELECT event_name, event_date, DAYOFWEEK(event_date) AS day_of_week
FROM events;
Truy vấn trên sẽ trả về thông tin về tên sự kiện, ngày diễn ra sự kiện và ngày trong tuần của các sự kiện đó.
Một số lưu ý khi sử dụng DAYOFWEEK()
- Ngày trả về bắt đầu từ Chủ Nhật (1), điều này có thể khác so với các ứng dụng hoặc tiêu chuẩn khác nơi Thứ Hai được coi là ngày đầu tuần.
- Giá trị ngày truyền vào cần phải hợp lệ, nếu không hàm sẽ trả về
NULL
.
Sử dụng DAYOFWEEK()
trong các điều kiện
Bạn có thể cũng sử dụng hàm này trong các điều kiện SELECT, WHERE, hoặc HAVING để lọc ra các kết quả nhất định. Ví dụ, để tìm tất cả các sự kiện diễn ra vào thứ Sáu:
SELECT event_name, event_date
FROM events
WHERE DAYOFWEEK(event_date) = 6;
Kết hợp với các hàm thời gian khác
Hàm DAYOFWEEK()
có thể được kết hợp với các hàm thời gian khác như CURDATE()
, NOW()
, và DATE_ADD()
để xử lý các trường hợp phức tạp hơn. Ví dụ, để lấy ngày trong tuần của ngày hiện tại:
SELECT DAYOFWEEK(CURDATE()) AS day_of_week;
Hoặc để tìm ngày trong tuần của một ngày xác định trong tương lai hoặc quá khứ:
SELECT DAYOFWEEK(DATE_ADD(CURDATE(), INTERVAL 7 DAY)) AS future_day;
SELECT DAYOFWEEK(DATE_ADD(CURDATE(), INTERVAL -7 DAY)) AS past_day;
Kết luận
Hàm DAYOFWEEK()
trong MySQL là một công cụ hữu ích cho bất kỳ ai cần làm việc với dữ liệu ngày tháng và cần biết chính xác ngày trong tuần của một giá trị ngày tháng cụ thể. Hiểu rõ cách sử dụng và kết hợp hàm này với các hàm khác sẽ giúp bạn xử lý và truy vấn dữ liệu hiệu quả hơn.
Comments