かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

PostgreSQLで to_char()すると前に半角スペースが入る

環境

  • PostgreSQL 9.3

to_char()すると前に半角スペースが入る

少しまえにハマったのでメモ。また出会った時のために… PostgreSQLで文字列をフォーマットに合わせて to_charすると先頭に半角スペースが1つはいってしまい、カラムに意図せぬ値が入ったということがありました。

-- 意図せぬ先頭の半角スペース
select  to_char(10, '00000')
⇒ ' 00010'


よくわからなかったのでとりあえず結局下記のようにトリムして対応しました。

select  trim(to_char(10, '00000'))
⇒ '00010'


そしたら、参考文献にあるように、to_charの第二引数にFM接頭辞を追加することで勝手に入る半角スペースを無効化出来るようです。PostgreSQLの公式ドキュメントの日付・時刻書式用のところに乗っているみたいですね。うーん。。。ちょっと混乱しますね。

select  to_char(10, 'FM00000')
⇒ '00010'