MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách DAYOFWEEK () hoạt động trong MariaDB

Trong MariaDB, DAYOFWEEK() 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 tuân theo tiêu chuẩn ODBC (1 =Chủ nhật, 2 =Thứ Hai, v.v.). Điều này trái ngược với WEEKDAY() , trong đó 0 =Thứ Hai, 1 =Thứ Ba, v.v.

Cú pháp

Cú pháp như sau:

 DAYOFWEEK(date) 

Nơi date là ngày bắt đầu từ đó.

Ví dụ

Đây là một ví dụ:

 SELECT DAYOFWEEK('2030-01-25'); 

Kết quả:

 + ------------------------- + | DAYOFWEEK ('2030-01-25') | + ------------------------- + | 6 | + ------------------------- + 

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 
    DAYOFWEEK('2030-01-20'),
    DAYNAME('2030-01-20'); 

Kết quả:

 + ------------------------- + -------------------- --- + | DAYOFWEEK ('2030-01-20') | DAYNAME ('2030-01-20') | + ------------------------- + ------------ ----------- + | 1 | Chủ nhật | + ------------------------- + --------------------- - + 

Như đã đề cập, việc đánh số chỉ mục bắt đầu từ 1 cho Chủ nhật.

Thứ Bảy đây:

 SELECT 
    DAYOFWEEK('2030-01-19'),
    DAYNAME('2030-01-19'); 

Kết quả:

 + ------------------------- + -------------------- --- + | DAYOFWEEK ('2030-01-19') | DAYNAME ('2030-01-19') | + ------------------------- + ------------ ----------- + | 7 | Thứ bảy | + ------------------------- + --------------------- - + 

Giá trị ngày giờ

Nó cũng hoạt động với các giá trị ngày giờ:

 SELECT DAYOFWEEK('2030-01-24 10:30:45'); 

Kết quả:

 + ---------------------------------- + | DAYOFWEEK ('2030-01-24 10:30:45') | + --------------------------------- - + | 5 | + ---------------------------------- + 

Zero Days

Không có ngày nào dẫn đến null .

Ví dụ:

 SELECT DAYOFWEEK('2030-00-00'); 

Kết quả:

 + ------------------------- + | DAYOFWEEK ('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 DAYOFWEEK(20300125); 

Kết quả:

 + --------------------- + | DAYOFWEEK (20300125) | + --------------------- + | 6 | + --------------------- + 

Hoặc thậm chí như sau (sử dụng năm có hai chữ số):

 SELECT DAYOFWEEK(300125); 

Kết quả:

 + ------------------- + | DAYOFWEEK (300125) | + ------------------- + | 6 | + ------------------- + 

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 DAYOFWEEK(20300135); 

Kết quả:

 + --------------------- + | DAYOFWEEK (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 
    DAYOFWEEK('2030/01/25'),
    DAYOFWEEK('2030,01,25'),
    DAYOFWEEK('2030:01:25'),
    DAYOFWEEK('2030;01!25'); 

Kết quả (sử dụng đầu ra dọc):

 DAYOFWEEK ('2030/01/25'):6DAYOFWEEK ('2030,01,25'):6DAYOFWEEK ('2030:01:25'):6DAYOFWEEK ('2030; 01! 25'):6  

Ngà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(),
    DAYOFWEEK(NOW()); 

Kết quả:

 + --------------------- + ------------------ + | NGAY BÂY GIỜ () | DAYOFWEEK (NOW ()) | + --------------------- + ------------------ + | 2021-05-15 09:17:44 | 7 | + --------------------- + ------------------ + 

Đối số không hợp lệ

Khi truyền một đối số không hợp lệ, DAYOFWEEK() trả về null :

 SELECT DAYOFWEEK('Homer'); 

Kết quả:

 + -------------------- + | DAYOFWEEK ('Homer') | + -------------------- + | NULL | + -------------------- + 

Thiếu đối số

Gọi DAYOFWEEK() 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 DAYOFWEEK(); 

Kết quả:

 ERROR 1582 (42000):Số tham số không chính xác trong lệnh gọi hàm gốc 'DAYOFWEEK' 

Và một ví dụ khác:

 SELECT DAYOFWEEK('2030-01-25', '2045-05-08'); 

Kết quả:

 ERROR 1582 (42000):Số tham số không chính xác trong lệnh gọi hàm gốc 'DAYOFWEEK' 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách mã hóa bản sao lưu MySQL &MariaDB của bạn

  2. 8 cách để thêm giây vào giá trị ngày giờ trong MariaDB

  3. Cách OCT () hoạt động trong MariaDB

  4. MariaDB LCASE () Giải thích

  5. Cách thức hoạt động của DIV trong MariaDB