PostgreSQL のよう11:10:45
なカスタムの方法で日付と時刻をフォーマットする集計関数はありますか (ただし、間隔にもっと興味があります) 。11h 10m 45s
または、パーツを抽出するか、自分で連結する必要がありますか?
問題は特にで発生number of days
しますinterval
PostgreSQL のよう11:10:45
なカスタムの方法で日付と時刻をフォーマットする集計関数はありますか (ただし、間隔にもっと興味があります) 。11h 10m 45s
または、パーツを抽出するか、自分で連結する必要がありますか?
問題は特にで発生number of days
しますinterval
あなたの質問ははっきりしていません。取得したい場合
間隔の日数
あなたが使用することができますEXTRACT
:
SELECT EXTRACT(day from '7 week'::interval) AS d
d
----
49
これにより、指定された間隔のサブフィールドが抽出されることに注意してください。間隔は正規化または正当化されません。間隔を正当化するには、最初に使用しますjustify_interval()
SELECT EXTRACT(day from justify_interval('7 week'::interval)) AS d;
d
----
19
49日から30日の月が差し引かれています。
したがって、これらの式は0日を返します。
SELECT EXTRACT(day from '24h'::interval);
SELECT EXTRACT(day from '1 months'::interval);
日付の間にある日数だけが必要な場合:
SELECT '2012-3-23'::date - '2012-3-1'::date AS d;
d
----
22
日付を引くだけで、その間の日数を表す整数を取得できます。
またはタイムスタンプ間:
SELECT EXTRACT (day from '2012-03-25 23:12'::timestamp
- '2010-03-01 03:34'::timestamp) AS d;
d
-----
755
to_char 関数の完全なドキュメントをチェックしてください。それはあなたが望むことをすることができます
http://www.postgresql.org/docs/9.1/interactive/functions-formatting.html
PostgreSQL 設定intervalstyleのさまざまな値を設定してみてください。
db=# show intervalstyle ;
IntervalStyle
---------------
postgres
db=# select interval '3 days 11:10:45';
interval
-----------------
3 days 11:10:45
db=# set intervalstyle = 'postgres_verbose';
SET
db=# select interval '3 days 11:10:45';
interval
-----------------------------------
@ 3 days 11 hours 10 mins 45 secs
db=# set intervalstyle = 'iso_8601';
SET
db=# select interval '3 days 11:10:45';
interval
---------------
P3DT11H10M45S