web-dev-qa-db-ja.com

PostgreSQLの選択クエリのタイムスタンプから日付と時刻を取得する方法は?

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の選択クエリを使用して、上記のように日付と時刻を取得するにはどうすればよいですか。

私を助けてください。

11
user2515189

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

date(またはtimestamp)からtimestamptzを取得するには、単純なcastが最速です。

_SELECT now()::date
_

ローカルタイムゾーンに従って、dateを取得します。

特定の形式のtextが必要な場合は、 to_char() のように @ davek提供 のようにします。

timestampの値を単位時間に切り捨てる(切り捨てる)場合は、 date_trunc() を使用します。

_SELECT date_trunc('minute', now());
_
22

これで十分です:

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