在PostgreSQL中创建间隔的不同方法

时间:2018-10-22 19:08:48

标签: postgresql intervals

我最近遇到了在PostgreSQL中使用interval类型的这种方式:

SELECT CURRENT_DATE + INTERVAL '1' month;
      ?column?       
---------------------
 2018-11-22 00:00:00

docs中,看起来是“正确”的方式:

SELECT CURRENT_DATE + INTERVAL '1 month';
      ?column?       
---------------------
 2018-11-22 00:00:00

两个查询是否等效?以前的语法在哪里记录?

1 个答案:

答案 0 :(得分:1)

第一种语法是SQL标准语法:

<interval literal> ::= INTERVAL [ <sign> ] <interval string> <interval qualifier>

<interval qualifier> ::=
    <start field> TO <end field>
  | <single datetime field>

我将为您保留<start field><end field><single datetime field>的定义,但是从本质上讲,它们可以采用值YEARMONTH,{{ 1}},DAYMINUTE

PostgreSQL不支持SECOND,您必须将其添加到字符串中。

以下是一些示例:

<sign>