sql >> Databasteknik >  >> RDS >> PostgreSQL

Filtrera efter datumintervall (samma månad och dag) över år

Om du antar (med ett språng av tro) att du vill ha datum mellan vissa dagar på året oavsett år (som om du skickar ut ett parti födelsedagskort eller något), kan du sätta upp ett test med detta:

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
\.

Och du kan använda "radvärdeskonstruktorer" för att enkelt välja önskat intervall:

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

Vilket ger:

     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. Vad är syftet med datareplikering?

  2. Anslut till SQL Server 2008 med TCP/IP

  3. Sliddäck och prover från #SQLintersection

  4. Självtillhandahållande av användarkonton i PostgreSQL via oprivilegierad anonym åtkomst