web-dev-qa-db-fra.com

postgres double table ne renvoie pas d'horodatage

J'essaie de sélectionner maintenant () dans ma double table de base de données postgres locale:

select now() from dual;

Il ne renvoie aucune ligne. Imprime simplement le nom de la colonne now(yyyy-MM-dd HH:mm:ss.ffffff)

Qu'est-ce qui me manque pour qu'il ne puisse pas obtenir l'heure du système?

3
user136046

Ne créez pas de tables dual

Pourquoi utilisez-vous une table double dans PostgreSQL pour commencer? PostgreSQL a une double table implicite s'il n'y a pas de clause from.

SELECT now(); -- works fine.

Vous pouvez également

SELECT * FROM now(); -- works fine.

La création d'une table dual devrait toujours fonctionner

Vous n'aurez jamais besoin d'une double table avec PostgreSQL, et vous ne devriez pas en créer une: elle alourdit simplement la syntaxe. Il est également étranger pour la plupart des utilisateurs de PostgreSQL. Cela dit, il est facile de démontrer que cela fonctionne ..

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)
6
Evan Carroll