如何从 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 选择查询获取日期和时间,就像上面那样。
请帮助我。
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') ...
要从
date
(或timestamp
)获得timestamptz
,简单的cast是最快的:
SELECT now()::date;
对于
timestamptz
输入,根据当前会话的date
设置获取timezone
。使用 AT ZIME ZONE
结构转置到给定时区,时区有所不同。参见:
to_char()
,如提供的 davek。
要将
timestamp
的值截断(向下舍入)为给定时间单位,请使用 date_trunc()
:
SELECT date_trunc('day', now());
这应该足够了:
select now()::date, now()::time
, pg_typeof(now()), pg_typeof(now()::date), pg_typeof(now()::time)