• ベストアンサー

DATE型を変換して表示したい。

以下のようなカラムをもつテーブルがあるとして、 ID, DATE 0001, 2006-12-07 00:00:00 00011, 2006-12-07 11:11:11 IDとDATEを整形して、次のような値をSELECT文で表示したいのですが、どのように指定すればよいでしょうか。 2006120700000000001 2006120711111100011 DATEは、-、スペース、:を削除し、IDは5桁として連結する。IDが4桁であれば先頭に0詰めする。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

select to_char(DATE,'YYYYMMDDHH24MISS') || to_char(ID,'00000') from テーブル名; でできないでしょうか。今手元にOracleの環境がないので試していませんが。

tomoremo
質問者

補足

さっそくの回答ありがとうございます。 試したところ、以下のように表示されています。 20061207000000 00001 20061207111111 00011 できれば、DATEとIDにスペースを空けたくないのですが。。。

その他の回答 (3)

  • D_Mari
  • ベストアンサー率0% (0/2)
回答No.4

trimしなくても、to_char(ID,'fm00000')でOK。

  • FudaKeji
  • ベストアンサー率73% (58/79)
回答No.3

TO_CHARでフォーマットを指定すると先頭に半角空白が入ってしまいます。 なので、 SELECT TO_CHAR(DATE,'YYYYMMDDHH24MISS') || TRIM(TO_CHAR(ID, '00000')) FROM テーブル とすれば良いでしょう。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No.1です。||で連結したときに空白が挿入されたかなあ。 うろ覚えで申し訳ないです。下のようにしたらどうなりますか? select concat(to_char(DATE,'YYYYMMDDHH24MISS'),to_char(ID,'00000')) from テーブル名;

関連するQ&A