CURRENT_TIMESTAMP 是 ANSI SQL 中的函数吗?

Is CURRENT_TIMESTAMP a function in ANSI SQL?

我在使用 bigquery 函数 current_timestamp() 时发现如果需要,可以不带括号使用它。因为它是一个函数,所以我主张使用括号,但我在互联网上找到的表明您确实可以在不同标准下使用它。

我发现在ANSI SQL 1992中确实是一个函数(based on this answer)。 但是我没有找到为什么允许在没有括号的情况下调用它,即使标准提倡使用括号? Snowflake 表示它允许不带括号的调用符合 ANSI SQL...

那么有人知道它是什么吗?

非常感谢!

基于2.1.2.70 F411

<current timestamp value function> ::=
 CURRENT_TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]

它是一个函数,(<precision>) 是可选的,所以以下是正确的:

SELECT CURRENT_TIMESTAMP;

SELECT CURRENT_TIMESTAMP(3);

根据该定义 SELECT CURRENT_TIMESTAMP() 不应该起作用,但通常会被实施。

db<>fiddle demo - MySQL vs db<>fiddle demo - PostgreSQL