【问题标题】:PostgreSQL Query WHERE date is greater than 3 years oldPostgreSQL 查询 WHERE 日期大于 3 年
【发布时间】:2012-05-02 18:34:36
【问题描述】:

我有一个包含 4 个日期的表格:

CREATE TABLE dates (
    date date
);

    11-mar-2008
    25-now-2007
    18-apr-2012
    20-apr-2012

我需要一个查询来返回所有早于三年的日期。那应该是前 2 个日期。

这对我不起作用:

SELECT * FROM dates WHERE date = now()::-1095;

【问题讨论】:

    标签: sql postgresql date where-clause


    【解决方案1】:
    SELECT 
      * 
    FROM 
      dates 
    WHERE 
      date < now() - '3 years' :: interval;
    

    另外,将您的列命名为 date 不是一个好习惯,因为这是 PostgreSQL 中的保留字。

    【讨论】:

    • 吹毛求疵,它是 SQL 标准中的保留字,尽管 PostgreSQL 没有发现有必要保留它。为了可移植性和面向未来,避免将其用作标识符可能仍然是明智之举。 postgresql.org/docs/current/interactive/…
    猜你喜欢
    • 2012-02-29
    • 2022-01-13
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 2012-03-05
    相关资源
    最近更新 更多