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

年全体の日付範囲(同じ月と日)でフィルタリングする

    (バースデーカードのバッチなどを送信する場合など)年に関係なく、1年の特定の日の間の日付が必要であると(信頼を持って)想定すると、次のようにテストを設定できます。

    CREATE TABLE d (dt date);
    COPY d FROM STDIN;
    1840-02-28
    1990-06-21
    1991-02-15
    1991-04-25
    1992-05-30
    1995-03-04
    1995-04-10
    2001-02-03
    2010-04-06
    \.
    

    また、「行値コンストラクター」を使用して、目的の範囲を簡単に選択できます。

    SELECT * FROM d
      WHERE (EXTRACT(MONTH FROM dt), EXTRACT(DAY FROM dt))
               BETWEEN (2, 15) AND (6, 21);
    

    どちらが得られますか:

         dt     
    ------------
     1840-02-28
     1990-06-21
     1991-02-15
     1991-04-25
     1992-05-30
     1995-03-04
     1995-04-10
     2010-04-06
    (8 rows)
    


    1. リターンタイプをSETOFテーブルと追加フィールドにする簡単な方法はありますか?

    2. 階層型MySQLクエリのヘルプが必要

    3. MySQLのデフォルトのdate()+ 14日、列の場合?

    4. Ruby onRails4+アプリのデフォルトのデータベース分離レベルを設定する方法