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

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

Trong MariaDB, LAST_DAY() là một hàm ngày và giờ được tích hợp sẵn trả về ngày cuối cùng của tháng cho một ngày nhất định.

Nó chấp nhận một đối số, là ngày mà bạn muốn tìm ngày cuối cùng của tháng.

Cú pháp

Cú pháp như sau:

LAST_DAY(date)

Nơi date là biểu thức ngày mà bạn muốn tìm ngày cuối cùng của tháng.

Ví dụ

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

SELECT LAST_DAY('2030-02-01');

Kết quả:

+------------------------+
| LAST_DAY('2030-02-01') |
+------------------------+
| 2030-02-28             |
+------------------------+

Trong trường hợp này, chúng tôi đang sử dụng một ngày trong tháng Hai. Hóa ra, tháng Hai có 28 ngày trong năm đó.

Đây là những gì sẽ xảy ra nếu chúng ta tăng ngày này sang năm nhuận tiếp theo:

SELECT LAST_DAY('2032-02-01');

Kết quả:

+------------------------+
| LAST_DAY('2032-02-01') |
+------------------------+
| 2032-02-29             |
+------------------------+

Giá trị ngày giờ

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

SELECT LAST_DAY('2030-02-01 10:30:45');

Kết quả:

+---------------------------------+
| LAST_DAY('2030-02-01 10:30:45') |
+---------------------------------+
| 2030-02-28                      |
+---------------------------------+

Zero Dates

Các ngày bằng không dẫn đến null .

Ví dụ:

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

Kết quả:

+------------------------+
| LAST_DAY('0000-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 LAST_DAY(20301125);

Kết quả:

+--------------------+
| LAST_DAY(20301125) |
+--------------------+
| 2030-11-30         |
+--------------------+

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

SELECT LAST_DAY(301125);

Kết quả:

+------------------+
| LAST_DAY(301125) |
+------------------+
| 2030-11-30       |
+------------------+

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

Kết quả:

+--------------------+
| LAST_DAY(20301135) |
+--------------------+
| NULL               |
+--------------------+
1 row in set, 1 warning (0.000 sec)

Chúng tôi có thể kiểm tra cảnh báo như sau:

SHOW WARNINGS;

Kết quả:

+---------+------+--------------------------------------+
| Level   | Code | Message                              |
+---------+------+--------------------------------------+
| Warning | 1292 | Incorrect datetime value: '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 
    LAST_DAY('2030/06/25'),
    LAST_DAY('2030,06,25'),
    LAST_DAY('2030:06:25'),
    LAST_DAY('2030;06!25');

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

LAST_DAY('2030/06/25'): 2030-06-30
LAST_DAY('2030,06,25'): 2030-06-30
LAST_DAY('2030:06:25'): 2030-06-30
LAST_DAY('2030;06!25'): 2030-06-30

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

Kết quả:

+---------------------+-----------------+
| NOW()               | LAST_DAY(NOW()) |
+---------------------+-----------------+
| 2021-05-18 09:39:01 | 2021-05-31      |
+---------------------+-----------------+

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

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

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

Kết quả:

+------------------------+
| LAST_DAY('2030-65-78') |
+------------------------+
| NULL                   |
+------------------------+
1 row in set, 1 warning (0.000 sec)

Kiểm tra cảnh báo:

SHOW WARNINGS;

Kết quả:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2030-65-78' |
+---------+------+----------------------------------------+

Thiếu đối số

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

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'

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

SELECT LAST_DAY('2030-12-10', '2031-12-10');

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'

  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ân nhắc bảo mật cho việc triển khai MariaDB trên môi trường đám mây lai

  2. Trả lại số ngày trong tháng bằng MariaDB

  3. Trả lại hàng ngẫu nhiên từ một bảng trong MariaDB

  4. Hiểu các chỉ mục trong MySQL:Phần một

  5. Cách nâng cấp từ MariaDB 10.4 lên MariaDB 10.5