3

I am trying to select now() from my local postgres database dual table:

select now() from dual;

It returns no rows. Just prints column name now(yyyy-MM-dd HH:mm:ss.ffffff)

What is it that I am missing that it cannot get the system time?

Hannah Vernon
  • 70,928
  • 22
  • 177
  • 323
user136046
  • 31
  • 1
  • 1
  • 2

1 Answers1

7

Don't create dual tables

Why are you using a dual table in PostgreSQL to begin with? PostgreSQL has an implicit dual table if there is no from-clause.

SELECT now(); -- works fine.

You can also

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

Creating a dual table should still work

You'll never need a dual table with PostgreSQL, and you shouldn't create one: it just convolutes the syntax. It's also foreign for most PostgreSQL users. That said, it's easy to demonstrate that it works..

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)
Evan Carroll
  • 65,432
  • 50
  • 254
  • 507