Trong MariaDB, DAYNAME()
là một hàm ngày và giờ được tích hợp sẵn trả về tên của ngày trong tuần cho 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 tên ngày.
Cú pháp
Cú pháp như sau:
DAYNAME(date)
Nơi date
là ngày để lấy tên ngày.
Ví dụ
Đây là một ví dụ:
SELECT DAYNAME('2045-10-17');
Kết quả:
+ ----------------------- + | DAYNAME ('2045-10-17') | + ----------------------- + | Thứ ba | + ----------------------- +
Ngôn ngữ
Ngôn ngữ được sử dụng cho tên ngày được kiểm soát bởi giá trị của lc_time_names
biến hệ thống.
Dưới đây là một ví dụ cho thấy điều này ảnh hưởng như thế nào đến kết quả:
SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17');
Kết quả:
+ ----------------------- + | DAYNAME ('2045-10-17') | + ----------------------- + | Dienstag | + ----------------------- +
Và chuyển trở lại en_US
, là mặc định:
SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17');
Kết quả:
+ ----------------------- + | DAYNAME ('2045-10-17') | + ----------------------- + | Thứ ba | + ----------------------- +
Dưới đây là danh sách các ngôn ngữ được MariaDB hỗ trợ và đây là cách trả về danh sách các ngôn ngữ hiện có của riêng bạn.
Trong khi chúng tôi thực hiện, đây là bài đăng giải thích cách kiểm tra giá trị của lc_time_names
của bạn biến hệ thống.
Giá trị ngày giờ
Nó cũng hoạt động với các giá trị ngày giờ:
SELECT DAYNAME('2030-01-25 10:30:45');
Kết quả:
+ -------------------------------- + | DAYNAME ('2030-01-25 10:30:45') | + -------------------------------- + | Thứ sáu | + -------------------------------- +
Zero Days
Không có ngày nào trong ngày trả về null
:
SELECT DAYNAME('2030-00-00');
Kết quả:
+ ----------------------- + | DAYNAME ('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 DAYNAME(20201108);
Kết quả:
+ ------------------- + | DAYNAME (20201108) | + ------------------- + | Chủ nhật | + ------------------- +
Năm có hai chữ số cũng được:
SELECT DAYNAME(201108);
Kết quả:
+ ----------------- + | DAYNAME (201108) | + ----------------- + | Chủ nhật | + ----------------- +
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 phần tháng thành một tháng không hợp lệ:
SELECT DAYNAME(209908);
Kết quả:
+ ----------------- + | DAYNAME (209908) | + ----------------- + | 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
DAYNAME('2027/08/19'),
DAYNAME('2027,08,19'),
DAYNAME('2027:08:19'),
DAYNAME('2027;08!19');
Kết quả (sử dụng đầu ra dọc):
DAYNAME ('2027/08/19'):Thứ NămDAYNAME ('2027,08,19'):Thứ NămDAYNAME ('2027:08:19'):Thứ NămDAYNAME ('2027; 08! 19'):Thứ NămNgà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(), DAYNAME(NOW());
Kết quả:
+ --------------------- + ---------------- + | NGAY BÂY GIỜ () | DAYNAME (NOW ()) | + --------------------- + ---------------- + | 2021-05-13 13:29:10 | Thứ năm | + --------------------- + ---------------- +Đối số không hợp lệ
Khi truyền một đối số không hợp lệ,
DAYNAME()
trả vềnull
:SELECT DAYNAME('Dang!');
Kết quả:
+ ------------------ + | DAYNAME ('Dang!') | + ------------------ + | NULL | + ------------------ +Thiếu đối số
Đang gọi
DAYNAME()
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 DAYNAME();
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 'DAYNAME'Và một ví dụ khác:
SELECT DAYNAME('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 'DAYNAME'