[pgsql-jp: 39590] to_char結果の結合について

丸山隆之 takayuki-maruyama @ nova-system.com
2008年 9月 24日 (水) 10:58:45 JST


お世話になります。丸山と申します。

表記の件、現在いろいろと試しているのですが、原因が分からず困っております。
もし同じような現象を経験された方や原因をご存じの方がいらっしゃったら、ご
教示いただければ幸いです。

<環境>
・PostgreSQL8.3.3(FedoraCore 7)
・pgAdmin3で実行・結果確認中


<現象>
あるテーブルで、年・月を格納しているinteger型のカラムがあるのですが、こ
のカラムを検索対象としたいと考えています。

検索対象のテーブルをtbl_a、年・月のカラムをそれぞれy, mとすると
select *
from tbl_a
where to_char(y, '0000') || to_char(m, '00') = '200809';
のようなSQLを実行しているのですが、該当データはあるものの、ヒットしてく
れません。

試しに
select to_char(y, '0000') || to_char(m, '00')
from tbl_a;
を実行してみると、"2008 09"などの結果が返ってきます。
(中に含まれる空白はスペースではないようです)

また、
select *
from tbl_a
where to_char(y * 100 + m, '000000');
などと指定してもヒットしませんでした。


上記のケース、何が原因で条件がヒットしなかったり、結果文字列に違うデータ
が含まれているのでしょうか?
もし原因や解決方法をご存じの方がいらっしゃったら、ご教示お願いします。



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