sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLで1か月の日数を取得する

    これは、PostgreSQLを使用して、特定の日付に基づいて1か月の日数を返す例です。

    SELECT 
        date_part(
            'days', 
            (date_trunc('month', date '2030-07-14') + interval '1 month - 1 day')
            );

    結果:

    31

    ここでは、date_part()を使用しました 月の最終日の日番号を返す関数。 date_trunc()を使用して、月の最終日を取得しました 日付の精度を月に切り捨て、結果に対して日付シフトを実行します。

    別の例を次に示します。今回は、各月の日数を返します。

    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";

    結果:

    +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec |
    +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    |  31 |  28 |  31 |  30 |  31 |  30 |  31 |  31 |  30 |  31 |  30 |  31 |
    +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+

    2月の日数は、うるう年かどうかによって変わる可能性があることに注意してください。


    1. CURRENT_TIMESTAMPの例– MySQL

    2. 適切なツールにより、チューニングが迅速に機能します

    3. データベース設計者にはどのようなスキルと知識が必要ですか?

    4. アソシエーションテーブルの正しい名前は何ですか(多対多の関係)