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

Cách hoạt động của WEEKOFYEAR () trong MariaDB

Trong MariaDB, WEEKOFYEAR() là một hàm ngày và giờ được tích hợp sẵn trả về tuần lịch của một ngày nhất định dưới dạng một số trong phạm vi từ 1 thành 53 .

Nó tương đương với việc sử dụng WEEK() hoạt động ở chế độ 3, và do đó kết quả của nó phù hợp với ISO 8601:1988.

Nó chấp nhận một đối số; ngày bạn muốn trích xuất trong tuần.

Cú pháp

Cú pháp như sau:

 WEEKOFYEAR(date) 

Nơi date là biểu thức ngày để lấy lịch tuần.

Ví dụ

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

 SELECT WEEKOFYEAR('2030-01-01'); 

Kết quả:

 + -------------------------- + | WEEKOFYEAR ('2030-01-01') | + -------------------------- + | 1 | + -------------------------- + 

Nó tương đương với việc làm như sau:

 SELECT WEEK('2030-01-01', 3); 

Kết quả:

 + ----------------------- + | TUẦN ('2030-01-01', 3) | + ----------------------- + | 1 | + ----------------------- + 

Giá trị ngày giờ

WEEKOFYEAR() hàm cũng hoạt động với các giá trị ngày giờ:

 SELECT WEEKOFYEAR('2030-08-01 10:30:45'); 

Kết quả:

 + ----------------------------------- + | WEEKOFYEAR ('2030-08-01 10:30:45') | + --------------------------------- - + | 31 | + ----------------------------------- + 

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 WEEKOFYEAR(20301125); 

Kết quả:

 + ---------------------- + | WEEKOFYEAR (20301125) | + ---------------------- + | 48 | + ---------------------- + 

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

 SELECT WEEKOFYEAR(301125); 

Kết quả:

 + -------------------- + | WEEKOFYEAR (301125) | + -------------------- + | 48 | + -------------------- + 

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 WEEKOFYEAR(20301135); 

Kết quả:

 + ---------------------- + | WEEKOFYEAR (20301135) | + ---------------------- + | NULL | + ---------------------- + 1 hàng được đặt, 1 cảnh báo (0,000 giây) 

Nó trả về null với một cảnh báo.

Hãy xem cảnh báo:

 SHOW WARNINGS; 

Kết quả:

 + --------- + ------ + ----------------------------- --------- + | Mức độ | Mã | Tin nhắn | + --------- + ------ + ------------------------------ -------- + | Cảnh báo | 1292 | Giá trị ngày giờ không chính xác:'20301135' | + --------- + ------ + ------------------------ -------------- + 

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 
    WEEKOFYEAR('2030/06/25'),
    WEEKOFYEAR('2030,06,25'),
    WEEKOFYEAR('2030:06:25'),
    WEEKOFYEAR('2030;06!25'); 

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

 WEEKOFYEAR ('2030/06/25'):26WEEKOFYEAR ('2030,06,25'):26WEEKOFYEAR ('2030:06:25'):26WEEKOFYEAR ('2030; 06! 25'):26  

Ngày hiện tại

Chúng ta có thể chuyển NOW() làm đối số datetime để sử dụng ngày hiện tại:

 SELECT 
    NOW(),
    WEEKOFYEAR(NOW()); 

Kết quả:

 + --------------------- + ------------------- + | NGAY BÂY GIỜ () | WEEKOFYEAR (NOW ()) | + --------------------- + ------------------- + | 2021-05-17 09:42:13 | 20 | + --------------------- + ------------------- + 

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

Khi được truyền đối số không hợp lệ, WEEKOFYEAR() trả về null :

 SELECT WEEKOFYEAR('2030-65-78'); 

Kết quả:

 + -------------------------- + | WEEKOFYEAR ('2030-65-78') | + -------------------------- + | NULL | + -------------------------- + 1 hàng được đặt, 1 cảnh báo (0,000 giây) 

Hãy đưa ra cảnh báo:

 SHOW WARNINGS; 

Kết quả:

 + --------- + ------ + ----------------------------- ----------- + | Mức độ | Mã | Tin nhắn | + --------- + ------ + ------------------------------ ---------- + | Cảnh báo | 1292 | Giá trị ngày giờ không chính xác:'2030-65-78' | + --------- + ------ + -------------------- -------------------- + 

Thiếu đối số

Đang gọi WEEKOFYEAR() 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 WEEKOFYEAR(); 

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 'WEEKOFYEAR' 

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

 SELECT WEEKOFYEAR('2030-12-10', 1); 

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 'WEEKOFYEAR' 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đo điểm chuẩn Triển khai cơ sở dữ liệu thủ công so với Triển khai tự động

  2. Cách TRIM () hoạt động trong MariaDB

  3. Cách cài đặt MariaDB 10 trên Debian và Ubuntu

  4. Cách chạy ứng dụng PHP 5 với MySQL 8.0 trên CentOS 7

  5. Cách ACOS () hoạt động trong MariaDB