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

Nhận số ngày trong tháng trong PostgreSQL

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn truy vấn có giới hạn bù quá chậm

  2. Nhận giá trị nối tiếp mặc định sau khi INSERT bên trong PL / pgSQL

  3. Cách chuyển đổi chuỗi thành dấu thời gian trong PostgreSQL

  4. Cách tách các giao dịch chỉ đọc và đọc ghi với JPA và Hibernate

  5. Rownum trong postgresql