如何从PostgreSQL选择查询中的时间戳获取日期和时间?

时间:2013-06-28 10:51:45

标签: sql postgresql select 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选择查询获取上述日期和时间。

请帮帮我。

3 个答案:

答案 0 :(得分:22)

要从date(或timestamp)获取timestamptz,最简单的强制转换是最快的:

SELECT now()::date

您可以根据当地时区获得date

如果您想要某种格式的text,请使用to_char()之类的@davek provided

如果要将timestamp的值截断(向下舍入)到一个时间单位,请使用date_trunc()

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

答案 1 :(得分:18)

postgresql有很多日期时间功能:

请参阅此处的列表

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

对于格式化,您可以使用以下内容:

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

e.g。

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

答案 2 :(得分:3)

这应该足够了:

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