How to get the date and time only up to minutes, not seconds, from timestamp in PostgreSQL. I need date as well as time.
For example:
2000-12-16 12:2
There are plenty of date-time functions available with postgresql:
See the list here
http://www.postgresql.org/docs/9.1/static/functions-datetime.html
e.g.
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 16
For formatting you can use these:
http://www.postgresql.org/docs/9.1/static/functions-formatting.html
e.g.
select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI') ...
This should be enough:
select now()::date, now()::time
, pg_typeof(now()), pg_typeof(now()::date), pg_typeof(now()::time)
To get the date
from a timestamp
(or timestamptz
) a simple cast is fastest:
SELECT now()::date
You get the date
according to your local time zone either way.
If you want text
in a certain format, go with to_char() like @davek provided.
If you want to truncate (round down) the value of a timestamp
to a unit of time, use date_trunc():
SELECT date_trunc('minute', now());