PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Lọc theo phạm vi ngày (cùng tháng và ngày) qua các năm

Giả sử (với niềm tin có bước nhảy vọt) rằng bạn muốn có các ngày giữa những ngày nhất định trong năm bất kể năm nào (chẳng hạn như nếu bạn đang gửi một loạt thiệp sinh nhật hoặc thứ gì đó), bạn có thể thiết lập một bài kiểm tra với điều này:

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

Và bạn có thể sử dụng "hàm tạo giá trị hàng" để dễ dàng chọn phạm vi mong muốn:

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

Kết quả là:

     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. Django khác biệt không hoạt động

  2. Nhiều trình tạo trình tự Hibernate cho một thực thể với PostgreSQL

  3. Sắp xếp theo thứ tự không hoạt động trên các cột được tính toán nếu đặt hàng theo áp dụng trên nhiều cột

  4. LOWER () - Chuyển đổi sang chữ thường trong PostgreSQL

  5. Không thể tạo trình điều khiển từ NHibernate.Driver.NpgsqlDriver