【发布时间】:2011-08-20 01:02:39
【问题描述】:
我有一个包含以下字段的 postgres 表
开始日期,持续时间
duration 包含任意数量的月份,因此要计算结束日期,请将 duration 中的月份添加到开始日期。现在我想用 postgres 查询做这样的事情。
SELECT *
FROM table
WHERE start_date > '2010-05-12'
AND (start_date + duration) < '2010-05-12'
这可能吗?如何正确使用语法?
我的postgres的版本是PostgreSQL 8.1.22 on x86_64-redhat-linux-gnu,由GCC gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)编译
【问题讨论】:
-
8.1 ?你真的应该升级!如果 "duration" 是 INTERVAL 类型,那么它会起作用,如果它是整数个月,你必须执行 "duration * '1 MONTH'::INTERVAL"。
-
@pefeu:你应该这样回答。
-
@peufeu - 8.1 是默认版本 on RHEL5。它是稳定的,在at least 2014 之前将得到 Red Hat 的支持。在某些情况下,这比拥有最新版本更重要。
标签: postgresql