[pgsql-jp: 37709] Re: 時間の表し方についておしえてください。

ISHIDA Akio iakio @ mono-space.net
2006年 11月 22日 (水) 08:28:18 JST


こんにちは。石田@苫小牧市です。

06/11/21 に vitz.kun @ nifty.com<vitz.kun @ nifty.com> さんは書きました:
> 石田@苫小牧市様
>
> お世話になります。
> 根田です。アドバイスどうもありがとうございます。
>
> 確かにバージョンの違いがあるみたいでした。
> 私の方では8.0.1で行っていました。
> 8.0.1では
> # select to_char(90000 * interval '1 second', 'HH24:MI:SS');
>  to_char
> ----------
>  01:00:00
> (1 row)
> のようにも なるみたいです。(なんとなく変な気しますが)
>
> 今回は最新のバージョンで行える事が可能ですので
> よかったでした。
>
> どうもありがとうございました。

なるほど。8.0 では to_char を使っても 01:00:00 に
なってしまうのですね。勘違いしていました。

別の解としては、
このケースでは実は interval にした方が扱いづらいので、
開き直って数値のまま扱った方が楽かもしれません。

=# select to_char(90000 / 60 / 60, 'FM00') || ':' ||
 to_char(90000 / 60 % 60, 'FM00') || ':' ||
 to_char(90000 % 60, 'FM00');
 ?column?
----------
 25:00:00
(1 row)

90000 を 3 回書くのが気持悪い場合、

=# select to_char(i / 60 / 60, 'FM00') || ':' ||
 to_char(i / 60 % 60, 'FM00') || ':' ||
 to_char(i % 60, 'FM00') from (select 90000) as v (i);
 ?column?
----------
 25:00:00
(1 row)

とか。

-- 
ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>



pgsql-jp メーリングリストの案内