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

MariaDB DAY () Giải thích

Trong MariaDB, DAY() là từ đồng nghĩa với DAYOFMONTH() . Nó trả về ngày trong tháng 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ả về ngày trong tháng.

Kết quả nằm trong phạm vi 1 thành 31 . Tuy nhiên, nếu ngày có phần không ngày (ví dụ:'0000-00-00' hoặc '2021-00-00' ), kết quả là 0 .

Cú pháp

Cú pháp như sau:

 DAY(date) 

Nơi date là ngày để trích xuất ngày từ đó.

Ví dụ

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

 SELECT DAY('2045-05-18'); 

Kết quả:

 + ------------------- + | NGÀY ('2045-05-18') | + ------------------- + | 18 | + ------------------- + 

Giá trị ngày giờ

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

 SELECT DAY('2045-05-18 01:10:15'); 

Kết quả:

 + ---------------------------- + | NGÀY ('2045-05-18 01:10:15') | + ---------------------------- + | 18 | + ---------------------------- + 

Zero Days

Dưới đây là một ví dụ sử dụng ngày 0 trong ngày:

 SELECT DAY('0000-00-00'); 

Kết quả:

 + ------------------- + | NGÀY ('0000-00-00') | + ------------------- + | 0 | + ------------------- + 

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 DAY(20220308); 

Kết quả:

 + --------------- + | NGÀY (20220308) | + --------------- + | 8 | + --------------- + 

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

 SELECT DAY(220308); 

Kết quả:

 + ------------- + | NGÀY (220308) | + ------------- + | 8 | + ------------- + 

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 DAY(220358); 

Kết quả:

 + ------------- + | NGÀY (220358) | + ------------- + | KHÔNG | + ------------- + 

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 
    DAY('2028/12/30'),
    DAY('2028,12,30'),
    DAY('2028:12:30'),
    DAY('2028;12!30'); 

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

 DAY ('2028/12/30'):30DAY ('2028,12,30'):30DAY ('2028:12:30'):30DAY ('2028; 12! 30'):30  

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(),
    DAY(NOW()); 

Kết quả:

 + --------------------- + ------------ + | NGAY BÂY GIỜ () | NGÀY (BÂY GIỜ ()) | + --------------------- + ------------ + | 2021-05-13 09:41:03 | 13 | + --------------------- + ------------ + 

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

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

 SELECT DAY('Oops!'); 

Kết quả:

 + -------------- + | DAY ('Rất tiếc!') | + -------------- + | KHÔNG | + -------------- + 

Thiếu đối số

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

Kết quả:

 ERROR 1064 (42000):Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn sử dụng tương ứng với phiên bản máy chủ MariaDB của bạn để biết cú pháp phù hợp để sử dụng gần ')' tại dòng 1 

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

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

Kết quả:

 ERROR 1064 (42000):Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn sử dụng tương ứng với phiên bản máy chủ MariaDB của bạn để biết cú pháp phù hợp để sử dụng gần '' 2045-05-08 ')' tại dòng 1 

  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 hoạt động của SUBDATE () trong MariaDB

  2. Tối đa hóa hiệu quả truy vấn cơ sở dữ liệu cho MySQL - Phần một

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

  4. DBaaS, định tuyến truy vấn đám mây và trong suốt

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