私はローカルのpostgresデータベースのデュアルテーブルからnow()を選択しようとしています:
_select now() from dual;
_
行は返されません。列名を出力するだけですnow(yyyy-MM-dd HH:mm:ss.ffffff)
システム時刻を取得できないのは何ですか?
dual
テーブルを作成しないそもそもなぜPostgreSQLでデュアルテーブルを使用しているのですか? from句がない場合、PostgreSQLには暗黙のデュアルテーブルがあります。
_SELECT now(); -- works fine.
_
あなたもすることができます
_SELECT * FROM now(); -- works fine.
_
SELECT count(*)
が1を返す理由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)
_