回答:
おそらく最も簡単な方法は次のとおりです。
SELECT EXTRACT(epoch FROM my_interval)/3600
整数、つまり日数が必要な場合:
SELECT (EXTRACT(epoch FROM (SELECT (NOW() - '2014-08-02 08:10:56')))/86400)::int
SELECT extract('epoch' FROM age('2014-08-02'::timestamp)) / 86400
(Pg 9.4を使用して)に変更できることがわかりました。age(ts)
CURRENT_DATE
日数を取得するには、最も簡単な方法は次のとおりです。
SELECT EXTRACT(DAY FROM NOW() - '2014-08-02 08:10:56');
私の知る限り、それは同じ結果を返します:
SELECT (EXTRACT(epoch FROM (SELECT (NOW() - '2014-08-02 08:10:56')))/86400)::int;
'1 month 0 days'
、を使用extract(day from …)
すると0
結果が得られます。
テーブルフィールドを変換する場合:
秒を含むようにフィールドを定義します。
CREATE TABLE IF NOT EXISTS test (
...
field INTERVAL SECOND(0)
);
値を抽出します。他の方法でキャストすることを忘れないでください。間隔が大きくなると、不愉快な驚きを得ることができます。
EXTRACT(EPOCH FROM field)::int