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

PostgreSQLの日付から週番号を取得する

    PostgreSQLでは、extract()を使用できます 日付から週番号を取得する関数。

    date_part()を使用することもできます 同じことをする機能。

    例1:extract()関数

    extract()の使用例を次に示します。 日付から週を抽出する関数。

    SELECT extract(week from date '2020-12-27') AS "Week Number";
    

    結果:

     Week Number 
    -------------
              52
    

    例2:date_part()関数

    date_part()を使用して同じことを行う方法は次のとおりです。 機能。

    SELECT date_part('week', date '2020-12-27') AS "Week Number";
    

    結果:

     Week Number 
    -------------
              52
    

    例3:ISO週番号付けシステムについて

    予期しない結果が得られた場合は、ISOの週番号の定義方法が原因である可能性があります。

    ISO週は月曜日に始まり、年の最初の週にはその年の1月4日が含まれます。したがって、1月上旬の日付は前年の第52週または第53週の一部になり、12月下旬の日付は翌年の第1週の一部になる可能性があります。

    例:

    SELECT 
      extract(week from date '2021-01-03') AS "2021-01-03",
      extract(week from date '2021-01-04') AS "2021-01-04";
    

    結果:

     2021-01-03 | 2021-01-04 
    ------------+------------
             53 |          1
    

    この場合、2021年1月3日は、実際にはまだ2020年の最後の週の一部です。2021年の最初の週は1月4日まで開始されません。

    以下は、年末の日付が翌年の第1週の一部であることを示す別の例です。

    SELECT 
      extract(week from date '2024-12-29') AS "2024-12-29",
      extract(week from date '2024-12-30') AS "2024-12-30";
    

    結果:

     2024-12-29 | 2024-12-30 
    ------------+------------
             52 |          1
    

    この場合、2024年12月29日は2024年の最後の週の一部ですが、12月30日になるとすぐに、2025年の最初の週になります。


    1. Postgres:まだ存在しない場合はINSERT

    2. 並列計画の開始方法–パート3

    3. SQLServer2019でファイルをコピーする新しい方法

    4. MySQL-SELECT WHEREフィールドIN(サブクエリ)-非常に遅い理由