PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Filtruj według zakresu dat (ten sam miesiąc i dzień) w latach

Zakładając (ze skokiem wiary), że chcesz mieć daty między określonymi dniami w roku, niezależnie od roku (na przykład, jeśli wysyłasz partię kartek urodzinowych lub coś takiego), możesz skonfigurować test w ten sposób:

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

Możesz też użyć „konstruktorów wartości wierszy”, aby łatwo wybrać żądany zakres:

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

Co daje:

     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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TimescaleDB:sprawnie wybierz ostatni wiersz

  2. Usuwanie PostgreSQL z wewnętrznym sprzężeniem

  3. Wiosenna aktualizacja JdbcTemplate kolumna geografii Postgis

  4. Jak ustawić wyzwalacz, aby zaktualizować kolumnę w innej tabeli?

  5. Sekwencja nie istnieje, gdy istnieje - Postgres/Spring Boot