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

5 chức năng để trích xuất số tuần từ một ngày trong MariaDB

Dưới đây là 5 chức năng cho phép bạn trả về số tuần của một ngày trong MariaDB. Bốn lượt trả về chỉ trong tuần và một lượt trả về cả tuần và năm.

WEEK() Chức năng

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

Ví dụ:

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

Kết quả:

+--------------------+
| WEEK('2023-07-25') |
+--------------------+
|                 30 |
+--------------------+

WEEK() 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 WEEK() Hoạt động trong MariaDB để biết thêm về các chế độ và ví dụ của từng chế độ.

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 tuần (cũng như các đơn vị khác) từ ngày.

Ví dụ:

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

Kết quả:

+---------------------------------+
| EXTRACT(WEEK FROM '2023-07-25') |
+---------------------------------+
|                              30 |
+---------------------------------+

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ề tuần (cũng như bất kỳ đơn vị nào khác) kể từ ngày. Có nhiều tùy chọn khác nhau để trả về số tuần, tùy thuộc vào ngày bắt đầu của tuần, v.v.

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

SELECT 
    DATE_FORMAT('2023-01-01', '%U') AS "%U",
    DATE_FORMAT('2023-01-01', '%u') AS "%u",
    DATE_FORMAT('2023-01-01', '%V') AS "%V",
    DATE_FORMAT('2023-01-01', '%v') AS "%v";

Kết quả:

+------+------+------+------+
| %U   | %u   | %V   | %v   |
+------+------+------+------+
| 01   | 00   | 01   | 52   |
+------+------+------+------+

Dưới đây là mô tả về từng mã định dạng đó:

Định dạng chỉ định Mô tả
%U Số tuần (00-53), khi ngày đầu tiên của tuần là Chủ nhật.
%u Số tuần (00-53), khi ngày đầu tiên của tuần là thứ Hai.
%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à đây là mô tả về %X%x như được đề cập trong bảng trên:

Đị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 .

Chúng tôi có thể kết hợp các chỉ định định dạng để trả lại năm và tuần cùng nhau nếu được yêu cầu:

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 số tuần không phải lúc nào cũng phản ánh các ví dụ trên - nó phụ thuộc vào ngày thực tế được sử dụng.

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

SELECT 
    DATE_FORMAT('2024-01-01', '%U') AS "%U",
    DATE_FORMAT('2024-01-01', '%u') AS "%u",
    DATE_FORMAT('2024-01-01', '%V') AS "%V",
    DATE_FORMAT('2024-01-01', '%v') AS "%v";

Kết quả:

+------+------+------+------+
| %U   | %u   | %V   | %v   |
+------+------+------+------+
| 00   | 01   | 53   | 01   |
+------+------+------+------+

Lần này, chúng tôi nhận được một tập hợp kết quả khác.

Dưới đây là những gì sẽ xảy ra khi chúng ta bước sang năm:

SELECT 
    DATE_FORMAT('2024-12-12', '%U') AS "%U",
    DATE_FORMAT('2024-12-12', '%u') AS "%u",
    DATE_FORMAT('2024-12-12', '%V') AS "%V",
    DATE_FORMAT('2024-12-12', '%v') AS "%v";

Kết quả:

+------+------+------+------+
| %U   | %u   | %V   | %v   |
+------+------+------+------+
| 49   | 50   | 49   | 50   |
+------+------+------+------+

Như bạn có thể thấy, việc trả lại số tuần không phải lúc nào cũng rõ ràng như chúng ta mong muốn.

Xem Chuỗi định dạng MariaDB để biết danh sách đầy đủ các chuỗi / mã định dạng có thể được sử dụng với DATE_FORMAT() .

YEARWEEK() Chức năng

Có thể lấy tuần trong một năm. 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 |
+------------------------+

Như với WEEK() hàm 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. Mã hóa MariaDB đầy đủ khi nghỉ ngơi và đang chuyển để bảo vệ dữ liệu tối đa - Phần một

  2. 4 Hàm trả về phần giây từ giá trị thời gian trong MariaDB

  3. Chuẩn bị máy chủ MySQL hoặc MariaDB để sản xuất - Phần thứ nhất

  4. MariaDB LENGTH () vs LENGTHB ():Sự khác biệt là gì?

  5. So sánh các giải pháp chuyển đổi dự phòng DBaaS với thiết lập khôi phục thủ công