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

4 chức năng để trả lại năm từ một ngày trong MariaDB

Dưới đây là 4 chức năng cho phép bạn trả về năm từ một ngày trong MariaDB. Ba hàm chỉ trả về năm và một hàm trả về cả năm và tuần.

YEAR() Chức năng

YEAR() hàm trả về năm cho một ngày nhất định. Kết quả nằm trong khoảng 1000 thành 9999 hoặc 0 cho những ngày có năm 0 (chẳng hạn như 0000-00-00 ).

Ví dụ:

SELECT YEAR('2023-07-25');

Kết quả:

+--------------------+
| YEAR('2023-07-25') |
+--------------------+
|               2023 |
+--------------------+

EXTRACT() Chức năng

EXTRACT () chức năng cho phép bạn trích xuất một đơn vị cụ thể từ ngày. Do đó, bạn có thể sử dụng nó để trích xuất năm (cũng như các đơn vị khác) từ ngày.

Ví dụ:

SELECT EXTRACT(YEAR FROM '2023-07-25');

Kết quả:

+---------------------------------+
| EXTRACT(YEAR FROM '2023-07-25') |
+---------------------------------+
|                            2023 |
+---------------------------------+

DATE_FORMAT() Chức năng

DATE_FORMAT() chức năng cho phép bạn định dạng một ngày dựa trên một chuỗi định dạng. Chuỗi định dạng chỉ định cách định dạng ngày.

Do đó, bạn có thể sử dụng chức năng này để trả về năm (cũng như bất kỳ đơn vị nào khác) kể từ ngày. Có các chỉ định định dạng khác nhau để trả về năm ở các định dạng khác nhau. Ví dụ:năm bốn chữ số, năm hai chữ số, v.v.

Dưới đây là một ví dụ trả về năm ở nhiều dạng khác nhau:

SELECT 
    DATE_FORMAT('2023-01-01', '%X') AS "%X",
    DATE_FORMAT('2023-01-01', '%x') AS "%x",
    DATE_FORMAT('2023-01-01', '%Y') AS "%Y",
    DATE_FORMAT('2023-01-01', '%y') AS "%y";

Kết quả:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2023 | 2022 | 2023 | 23   |
+------+------+------+------+

Lưu ý rằng %x đã trả lại một số năm khác với những số khác.

Dưới đây là mô tả về từng mã định dạng đó, giải thích lý do tại sao %x trả về một kết quả khác:

Định dạng chỉ định Mô tả
%X Năm có 4 chữ số khi ngày đầu tiên của tuần là Chủ nhật. Được sử dụng với %V .
%x Năm có 4 chữ số khi ngày đầu tiên của tuần là thứ Hai. Được sử dụng với %v .
%Y Năm có 4 chữ số.
%y Năm có 2 chữ số.

Và đây là mô tả về %V%v như được đề cập trong bảng trên:

Định dạng chỉ định Mô tả
%V Số tuần (01-53), khi ngày đầu tiên của tuần là Chủ nhật. Được sử dụng với %X .
%v Số tuần (01-53), khi ngày đầu tiên của tuần là thứ Hai. Được sử dụng với %x .

Vì vậy, chúng tôi có thể thêm các chỉ định định dạng đó vào ví dụ trên và nhận được như sau:

SELECT 
    DATE_FORMAT('2023-01-01', '%X, %V') AS "%X, %V",
    DATE_FORMAT('2023-01-01', '%x, %v') AS "%x, %v";

Kết quả:

+----------+----------+
| %X, %V   | %x, %v   |
+----------+----------+
| 2023, 01 | 2022, 52 |
+----------+----------+

Lưu ý rằng %x không phải lúc nào cũng trả về một năm khác - nó phụ thuộc vào ngày thực tế được sử dụng. Đôi khi nó là %X trả về một năm khác cho những năm khác.

Hãy dời ngày sang năm sau:

SELECT 
    DATE_FORMAT('2024-01-01', '%X') AS "%X",
    DATE_FORMAT('2024-01-01', '%x') AS "%x",
    DATE_FORMAT('2024-01-01', '%Y') AS "%Y",
    DATE_FORMAT('2024-01-01', '%y') AS "%y";

Kết quả:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2023 | 2024 | 2024 | 24   |
+------+------+------+------+

Lần này là %X đó là một điều kỳ lạ. Như đã giải thích trong bảng trên, điều này phụ thuộc vào ngày đầu tiên của tuần là Chủ Nhật hay Thứ Hai.

Tất nhiên, nếu chúng ta tiến xa hơn sang năm, tất cả các chỉ định định dạng đều trả về cùng một năm:

SELECT 
    DATE_FORMAT('2024-12-12', '%X') AS "%X",
    DATE_FORMAT('2024-12-12', '%x') AS "%x",
    DATE_FORMAT('2024-12-12', '%Y') AS "%Y",
    DATE_FORMAT('2024-12-12', '%y') AS "%y";

Kết quả:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2024 | 2024 | 2024 | 24   |
+------+------+------+------+

Xem Chuỗi định dạng MariaDB để biết danh sách đầy đủ các chuỗi / mã định dạng.

YEARWEEK() Chức năng

YEARWEEK() hàm trả về năm và tuần cho một ngày nhất định.

Ví dụ:

SELECT YEARWEEK('2023-01-01');

Kết quả:

+------------------------+
| YEARWEEK('2023-01-01') |
+------------------------+
|                 202301 |
+------------------------+

Năm trong kết quả có thể khác với năm trong đối số ngày cho tuần đầu tiên và tuần cuối cùng của năm.

Đây là những gì sẽ xảy ra nếu chúng ta tiến tới một năm:

SELECT YEARWEEK('2024-01-01');

Kết quả:

+------------------------+
| YEARWEEK('2024-01-01') |
+------------------------+
|                 202353 |
+------------------------+

YEARWEEK() hàm chấp nhận một đối số thứ hai tùy chọn để chỉ định chế độ. Kết quả thực tế bạn nhận được từ chức năng này sẽ phụ thuộc vào chế độ đang được sử dụng. Nếu đối số chế độ bị bỏ qua, giá trị của default_week_format biến hệ thống được sử dụng.

Xem Cách thực hiện YEARWEEK() Hoạt động trong MariaDB để biết thêm về các chế độ và ví dụ của từng chế độ.


  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 MAKEDATE () hoạt động trong MariaDB

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

  3. Cách hoạt động của hàm INSERT () trong MariaDB

  4. Cách hoạt động của nhà điều hành Modulo trong MariaDB

  5. MariaDB JSON_LOOSE () Giải thích