Как получить дату и время из метки времени в запросе на выбор 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)