• 締切済み

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

みんなの回答

回答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)

questorfe
質問者

お礼

有難うございます。 つまりは、特にこれといった方法は存在しないので、 自力で日付に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

関連するQ&A