Dưới đây là một ví dụ về việc sử dụng PostgreSQL để trả về số ngày trong tháng, dựa trên một ngày nhất định.
SELECT
date_part(
'days',
(date_trunc('month', date '2030-07-14') + interval '1 month - 1 day')
);
Kết quả:
31
Ở đây, chúng tôi đã sử dụng date_part()
hàm trả về số ngày của ngày cuối cùng của tháng. Chúng ta có ngày cuối cùng của tháng bằng cách sử dụng date_trunc()
để cắt bớt độ chính xác của ngày thành tháng và cũng bằng cách thực hiện một số chuyển đổi ngày trên kết quả.
Đây là một ví dụ khác, lần này trả về số ngày trong mỗi tháng:
SELECT
date_part('days', (date_trunc('month', date '2030-01-14') + interval '1 month - 1 day')) AS "Jan",
date_part('days', (date_trunc('month', date '2030-02-14') + interval '1 month - 1 day')) AS "Feb",
date_part('days', (date_trunc('month', date '2030-03-14') + interval '1 month - 1 day')) AS "Mar",
date_part('days', (date_trunc('month', date '2030-04-14') + interval '1 month - 1 day')) AS "Apr",
date_part('days', (date_trunc('month', date '2030-05-14') + interval '1 month - 1 day')) AS "May",
date_part('days', (date_trunc('month', date '2030-06-14') + interval '1 month - 1 day')) AS "Jun",
date_part('days', (date_trunc('month', date '2030-07-14') + interval '1 month - 1 day')) AS "Jul",
date_part('days', (date_trunc('month', date '2030-08-14') + interval '1 month - 1 day')) AS "Aug",
date_part('days', (date_trunc('month', date '2030-09-14') + interval '1 month - 1 day')) AS "Sep",
date_part('days', (date_trunc('month', date '2030-10-14') + interval '1 month - 1 day')) AS "Oct",
date_part('days', (date_trunc('month', date '2030-11-14') + interval '1 month - 1 day')) AS "Nov",
date_part('days', (date_trunc('month', date '2030-12-14') + interval '1 month - 1 day')) AS "Dec";
Kết quả:
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | 31 | 28 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
Hãy lưu ý rằng số ngày trong tháng Hai có thể thay đổi tùy thuộc vào việc đó có phải là năm nhuận hay không.