I want to perform a query using sysdate like:
select up_time from exam where up_time like sysdate
which is possible in Oracle.
However, it seems that PostgreSQL doesn't support sysdate. I couldn't find sysdate in postgres documentation. What is the replacement for sysdate in PostgreSQL?
The following functions are available to obtain the current date and/or time in PostgreSQL:
Example
postgresql docs
SYSDATE
is an Oracle only function.The ANSI standard defines
current_date
orcurrent_timestamp
which is supported by Postgres and documented in the manual:http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
(Btw: Oracle supports
CURRENT_TIMESTAMP
as well)You should pay attention to the difference between
current_timestamp
,statement_timestamp()
andclock_timestamp()
(which is explained in the manual, see the above link)This statement:
Does not make any sense at all. Neither in Oracle nor in Postgres. If you want to get rows from "today", you need something like:
Note that in Oracle you would probably want
trunc(up_time) = trunc(sysdate)
to get rid of the time part that is always included in Oracle.NOW() is the replacement of Oracle Sysdate in Postgres.
Try "Select now()", it will give you the system timestamp.
You may want to use statement_timestamp(). This give the timestamp when the statement was executed. Whereas
NOW()
andCURRENT_TIMESTAMP
give the timestamp when the transaction started.More details in the manual