我最近遇到了在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
两个查询是否等效?以前的语法在哪里记录?
答案 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>
的定义,但是从本质上讲,它们可以采用值YEAR
,MONTH
,{{ 1}},DAY
或MINUTE
。
PostgreSQL不支持SECOND
,您必须将其添加到字符串中。
以下是一些示例:
<sign>