Как получить дату и время из метки времени в запросе на выбор PostgreSQL?

Как получить дату и время только до минут, а не секунд, от timestamp в PostgreSQL. Мне нужна дата и время.

Например:

2000-12-16 12:21:13-05 

Из этого мне нужно

2000-12-16 12:21 (no seconds and milliseconds only date and time in hours and minutes)

Из метки времени с полем часового пояса, скажем update_time, как мне получить дату, а также время, подобное выше, используя запрос выбора PostgreSQL.

Пожалуйста, помогите мне.

Ответ 1

В postgresql имеется множество функций даты и времени:

См. список здесь

http://www.postgresql.org/docs/9.1/static/functions-datetime.html

например.

SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 16

Для форматирования вы можете использовать их:

http://www.postgresql.org/docs/9.1/static/functions-formatting.html

например.

select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI') ...

Ответ 2

Чтобы получить date от timestamp (или timestamptz), самый быстрый литье:

SELECT now()::date

Вы получаете date в соответствии с вашим местным часовым поясом в любом случае.

Если вы хотите text в определенном формате, перейдите с to_char(), например @davek предоставлен.

Если вы хотите обрезать (округлить вниз) значение a timestamp до единицы времени, используйте date_trunc():

SELECT date_trunc('minute', now());

Ответ 3

Этого должно быть достаточно:

select now()::date, now()::time
    , pg_typeof(now()), pg_typeof(now()::date), pg_typeof(now()::time)