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

问题描述 投票:0回答:3

如何从 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 选择查询获取日期和时间,就像上面那样。

请帮助我。

sql postgresql select timestamp
3个回答
24
投票

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') ...

24
投票

要从

date
(或
timestamp
)获得
timestamptz
,简单的cast是最快的:

SELECT now()::date;

对于

timestamptz
输入,根据当前会话的
date
设置获取
timezone
。使用
AT ZIME ZONE
结构转置到给定时区,时区有所不同。参见:

对于自定义格式的文本输出,请使用

to_char()
,如提供的 davek

要将

timestamp
的值截断(向下舍入)为给定时间单位,请使用
date_trunc()
:

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

5
投票

这应该足够了:

select now()::date, now()::time
    , pg_typeof(now()), pg_typeof(now()::date), pg_typeof(now()::time)
© www.soinside.com 2019 - 2024. All rights reserved.