- 締切済み
PostgreSqlのinterval型のフォーマ
PostgreSqlのinterval型の項目に"1 day 05:19:00"という値が入っています。 これを29:19という時分で、 もしくは時を単独で29(時間)という数値に変換する方法を教えてください SELECT item1 -- "1 day 05:19:00" , to_char(item1,'HH:MI') -- "05:19" , to_char(item1,'HH24:MI') -- "05:19" , to_char(item1,'HH') -- "05" , to_char(item1,'MI') -- "19" FROM (select '1 day 05:19:00'::interval AS item1) query1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- okashiro526
- ベストアンサー率37% (6/16)
回答No.1
これで、29を取得できます。 SELECT (CAST(TO_CHAR(DATE_TRUNC('hour', ('1 day 05:19:00'::interval)), 'DD') AS integer) * 24) + CAST(TO_CHAR(DATE_TRUNC('hour', ('1 day 05:19:00'::interval)), 'HH24') AS integer)
お礼
有難うございます。 つまりは、特にこれといった方法は存在しないので、 自力で日付に24を掛けて時を足せって事ですね。 ちなみに時未満を切り捨てる処理 DATE_TRUNC('hour', ('1 day 05:19:00'::interval)) の部分は必要なさそうですね。 SELECT TO_CHAR(item1, 'DD')::integer * 24 + TO_CHAR(item1, 'HH24')::integer FROM (select '1 day 05:19:00'::interval AS item1) query1