如何从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选择查询获取上述日期和时间。
请帮帮我。
答案 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)