[pgsql-jp: 29980] Re: 24:00を超えた場合の時刻表示方法について

Takao Kato sirius @ jp.fujitsu.com
2003年 5月 19日 (月) 14:56:08 JST


加藤@川崎です。

> PHPのML([PHP-users 15364])での意見ですが、僕も「魚を
> 与えるよりも、釣りの仕方を教える」方針でいきます。

うっ、答え書いて出しかけてしまいました ^^;
# もったいないけれど出さないでおきます。

> 以下の方法を提案します
> 1) PostgreSQLリファレンスより、SELECT文の書き方や、PostgreSQL提供の
>    SQL関数を確認する。

それだけだと難しいかもしれないので、ヒント(ポインター)をいくつか。

ヒント1:case when 〜 else 〜 end
ヒント2:to_char
ヒント3:int または text型へのキャスト
ヒント4:文字列連結関数(?)


それと、日付を比較するのに

>if( to_char( work_date , 'YYYY/MM/DD') != to_char( in_time , 'YYYY/MM/DD') 
>)	-- 「24+2」する…
>else -- そのまま…

とされていますが、例えばヒント3の「キャスト」を利用して、

if(in_time::date != out_time::date)  -- 「24+2」の処理
else                                 --  そのまま

とやったりできますよね。今回はtimestampをdateにキャストしていますが、、、、

ちょっと考えるとパズルが解けたように答えが閃くかと。
-------------
加藤@川崎



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