Trong PostgreSQL, bạn có thể sử dụng extract()
hàm để lấy số tuần từ một ngày.
Bạn cũng có thể sử dụng date_part()
chức năng để làm điều tương tự.
Ví dụ 1:Hàm trích xuất ()
Dưới đây là một ví dụ về việc sử dụng extract()
hàm để trích xuất tuần từ một ngày.
SELECT trích xuất (tuần từ ngày '2020-12-27') AS "Số tuần";
Kết quả:
Số tuần ------------- 52
Ví dụ 2:Hàm date_part ()
Dưới đây là cách thực hiện điều tương tự bằng cách sử dụng date_part()
chức năng.
SELECT date_part ('week', date '2020-12-27') AS "Số tuần";
Kết quả:
Số tuần ------------- 52
Ví dụ 3:Giới thiệu về Hệ thống đánh số theo tuần ISO
Nếu bạn nhận được kết quả mà bạn không mong đợi, có thể là do cách đánh số tuần theo ISO được xác định.
Các tuần lễ ISO bắt đầu vào các ngày thứ Hai và tuần đầu tiên của một năm bao gồm ngày 4 tháng Giêng của năm đó. Do đó, những ngày đầu tháng 1 có thể là một phần của tuần thứ 52 hoặc thứ 53 của năm trước và những ngày cuối tháng 12 là một phần của tuần đầu tiên của năm tiếp theo.
Ví dụ:
SELECT trích xuất (tuần kể từ ngày '2021-01-03') AS "2021-01-03", trích xuất (tuần từ ngày '2021-01-04') AS "2021-01-04";Kết quả:
2021-01-03 | 2021-01-04 ------------ + ------------ 53 | 1Trong trường hợp này, ngày 3 tháng 1 năm 2021 thực tế vẫn là một phần của tuần cuối cùng của năm 2020. Tuần đầu tiên của năm 2021 không bắt đầu cho đến ngày 4 tháng 1.
Dưới đây là một ví dụ khác cho thấy một ngày vào cuối năm là một phần của tuần đầu tiên của năm sau.
SELECT trích xuất (tuần từ ngày '2024-12-29') AS "2024-12-29", trích xuất (tuần từ ngày '2024-12-30') AS "2024-12-30";Kết quả:
2024-12-29 | 2024-12-30 ------------ + ------------ 52 | 1Trong trường hợp này, ngày 29 tháng 12 năm 2024 là một phần của tuần cuối cùng của năm 2024, nhưng ngay khi bước sang ngày 30 tháng 12, chúng ta đang ở tuần đầu tiên của năm 2025.