tom*_*115 6 sql database postgresql date postgresql-8.4
我有一个PostgreSQL数据库,其中包含一个保存日期的表.现在我需要查找日期范围内的所有行,15/02
直到21/06
所有年份的(日/月).
示例结果:
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
Run Code Online (Sandbox Code Playgroud)
假设(通过信念的飞跃)你想要一年中某些日子之间的日期而不管一年(例如,如果你发送了一批生日贺卡或其他东西),你可以设置一个测试:
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
\.
Run Code Online (Sandbox Code Playgroud)
您可以使用"行值构造函数"轻松选择所需的范围:
SELECT * FROM d
WHERE (EXTRACT(MONTH FROM dt), EXTRACT(DAY FROM dt))
BETWEEN (2, 15) AND (6, 21);
Run Code Online (Sandbox Code Playgroud)
产量:
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)
使用WHERE
带有BETWEEN
运算符的子句。看:
http://www.postgresql.org/docs/current/static/functions-comparison.html#FUNCTIONS-COMPARISON
和:
http://www.postgresql.org/docs/current/static/sql-select.html http://www.postgresql.org/docs/current/static/tutorial.html
如果这没有帮助,请通过以下方式扩展您的问题:
\d tablename
命令或原始CREATE TABLE
语句;