Trong MariaDB, WEEKDAY()
là một hàm ngày và giờ được tích hợp sẵn trả về ngày trong tuần từ một ngày nhất định.
Nó chấp nhận một đối số, là ngày bạn muốn trích xuất ngày trong tuần.
Nó trả về ngày dưới dạng một số. Việc đánh số chỉ mục bắt đầu từ 0 cho Thứ Hai (tức là 0
=Thứ Hai, 1
=Thứ Ba, v.v.). Điều này trái ngược với DAYOFWEEK()
, tuân theo tiêu chuẩn ODBC (1
=Chủ nhật, 2
=Thứ Hai, v.v.).
Cú pháp
Cú pháp như sau:
WEEKDAY(date)
Nơi date
là ngày lấy ngày trong tuần.
Ví dụ
Đây là một ví dụ:
SELECT WEEKDAY('2030-01-25');
Kết quả:
+ ----------------------- + | WEEKDAY ('2030-01-25') | + ----------------------- + | 4 | + ----------------------- +
So với Tên ngày
Đây là một cái khác, cùng với DAYNAME()
để trả lại tên ngày:
SELECT
WEEKDAY('2030-01-21'),
DAYNAME('2030-01-21');
Kết quả:
+ ----------------------- + ---------------------- - + | WEEKDAY ('2030-01-21') | DAYNAME ('2030-01-21') | + -------------------------- + ------------------ --------- + | 0 | Thứ hai | + ----------------------- + ----------------------- +
Như đã đề cập, việc đánh số chỉ mục bắt đầu từ 0 cho Thứ Hai.
Chủ nhật đây:
SELECT
WEEKDAY('2030-01-20'),
DAYNAME('2030-01-20');
Kết quả:
+ ----------------------- + ---------------------- - + | TUẦN LỄ ('2030-01-20') | DAYNAME ('2030-01-20') | + ----------------------- + ------------------ --------- + | 6 | Chủ nhật | + ----------------------- + ----------------------- +
Giá trị ngày giờ
Nó cũng hoạt động với các giá trị ngày giờ:
SELECT WEEKDAY('2030-01-24 10:30:45');
Kết quả:
+ -------------------------------- + | WEEKDAY ('2030-01-24 10:30:45') | + -------------------------------- + | 3 | + -------------------------------- +
Zero Days
Không có ngày nào dẫn đến null
.
Ví dụ:
SELECT WEEKDAY('2030-00-00');
Kết quả:
+ ----------------------- + | WEEKDAY ('2030-00-00') | + ----------------------- + | NULL | + ----------------------- +
Số ngày
Cũng có thể chuyển ngày tháng dưới dạng số, miễn là ngày tháng có ý nghĩa.
Ví dụ
SELECT WEEKDAY(20300125);
Kết quả:
+ ------------------- + | WEEKDAY (20300125) | + ------------------- + | 4 | + ------------------- +
Hoặc thậm chí như sau (sử dụng năm có hai chữ số):
SELECT WEEKDAY(300125);
Kết quả:
+ ----------------- + | WEEKDAY (300125) | + ----------------- + | 4 | + ----------------- +
Nhưng nó phải có ý nghĩa như một cuộc hẹn hò. Đây là những gì sẽ xảy ra nếu tôi tăng thời gian trong ngày thành một ngày không hợp lệ:
SELECT WEEKDAY(20300135);
Kết quả:
+ ------------------- + | WEEKDAY (20300135) | + ------------------- + | NULL | + ------------------- +
Các dấu phân cách khác
Bạn có thể sử dụng các dấu phân cách khác cho ngày. MariaDB khá dễ dãi khi nói đến dấu phân cách ngày tháng. Dưới đây là một số ví dụ hợp lệ:
SELECT
WEEKDAY('2030/01/25'),
WEEKDAY('2030,01,25'),
WEEKDAY('2030:01:25'),
WEEKDAY('2030;01!25');
Kết quả (sử dụng đầu ra dọc):
WEEKDAY ('2030/01/25'):4WEEKDAY ('2030,01,25'):4WEEKDAY ('2030:01:25'):4WEEKDAY ('2030; 01! 25'):4Ngày hiện tại
Chúng ta có thể chuyển
NOW()
làm đối số ngày để sử dụng ngày hiện tại:SELECT NOW(), WEEKDAY(NOW());
Kết quả:
+ --------------------- + ---------------- + | NGAY BÂY GIỜ () | WEEKDAY (NOW ()) | + --------------------- + ---------------- + | 2021-05-15 09:44:50 | 5 | + --------------------- + ---------------- +Đối số không hợp lệ
Khi truyền một đối số không hợp lệ,
WEEKDAY()
trả vềnull
:SELECT WEEKDAY('Homer');
Kết quả:
+ ------------------ + | WEEKDAY ('Homer') | + ------------------ + | NULL | + ------------------ +Thiếu đối số
Gọi
WEEKDAY()
với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào, dẫn đến lỗi:SELECT WEEKDAY();
Kết quả:
ERROR 1582 (42000):Số lượng tham số không chính xác trong lệnh gọi hàm gốc 'WEEKDAY'Và một ví dụ khác:
SELECT WEEKDAY('2030-01-25', '2045-05-08');
Kết quả:
ERROR 1582 (42000):Số lượng tham số không chính xác trong lệnh gọi hàm gốc 'WEEKDAY'