检查PostgreSQL中的日期是否超过3年

Dan*_*ine 11 postgresql date

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

CREATE TABLE dates (
date date
);

    11-mar-2008
    25-now-2007
    18-apr-2012
    20-apr-2012
Run Code Online (Sandbox Code Playgroud)

我想要一份声明,我可以找到所有超过三年的日期.这应该是前两个日期.

到目前为止,我有:

SELECT * FROM dates WHERE date = now()::-1095;
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

任何帮助将不胜感激.

vye*_*rov 20

试试这个:

SELECT * FROM dates WHERE date < now() - '3 years'::interval;
Run Code Online (Sandbox Code Playgroud)

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

  • 为了挑选,它是SQL标准中的保留字,尽管PostgreSQL没有发现它有必要保留它.为了便于携带和面向未来,避免将其用作标识符仍然是明智之举.http://www.postgresql.org/docs/current/interactive/sql-keywords-appendix.html (3认同)