双表 postgres 不返回时间戳

use*_*046 3 postgresql timestamp select system-tables

我正在尝试从本地 postgres 数据库双表中选择 now():

select now() from dual;
Run Code Online (Sandbox Code Playgroud)

它不返回任何行。只打印列名now(yyyy-MM-dd HH:mm:ss.ffffff)

我错过了什么无法获得系统时间?

Eva*_*oll 6

不要创建dual

你为什么要在 PostgreSQL 中使用双表?如果没有 from 子句,PostgreSQL 有一个隐式双表。

SELECT now(); -- works fine.
Run Code Online (Sandbox Code Playgroud)

你也可以

SELECT * FROM now(); -- works fine.
Run Code Online (Sandbox Code Playgroud)

创建dual表应该仍然有效

PostgreSQL 永远不需要双表,也不应该创建双表:它只会使语法复杂化。对于大多数 PostgreSQL 用户来说,它也是陌生的。也就是说,很容易证明它有效..

test=# CREATE TABLE dual AS ( VALUES (true) );
SELECT 1
test=# SELECT now() FROM dual ;
              now              
-------------------------------
 2017-10-05 15:34:34.359092-05
(1 row)
Run Code Online (Sandbox Code Playgroud)