PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Филтрирайте по период от време (един и същи месец и ден) през годините

Ако приемем (със скок на вярата), че искате дати между определени дни от годината, независимо от годината (например, ако изпращате партида картички за рожден ден или нещо подобно), можете да настроите тест с това:

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 реда)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONSTRAINT за проверка на стойности от отдалечено свързана таблица (чрез присъединяване и т.н.)

  2. Python psycopg2 cursor.fetchall() връща празен списък, но cursor.rowcount е> 1

  3. Разделете върнатия от функцията запис на множество колони

  4. Динамичен ORDER BY и ASC / DESC във функция plpgsql

  5. Дублиращи се редове в таблица с първичен ключ.