• ベストアンサー

DBからもってきた文字を置換したいのですが、うまくいきません。

オールインワンeclipse3.4 tomcat5.5を使用してoracle9iに入れたテーブルをwebブラウザに表示しました。 すると、出版日という項目が1989-10-01と、"-"で区切られて表示されてしまいます。 この"-"を、"/"に置き換えて表示させたいのですが、replaceを使うところまでは分かったのですが、どこにどう記述すればいいのか分かりません。 どなたかご指導お願いいたします。 表示方法は、サーブレットでSQLを発行してJSPで表示しています。 どなたかご指導お願いいたします。

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

  • ベストアンサー
回答No.3

>String sql ="SELECT ID,TITLE,RELEASEDAY FROM ACCOUNT"; >String sql2 ="SELECT TO_CHAR(RELEASEDAY, 'YYYY/MM/DD') as today FROM ACCOUNT"; String sql = "SELECT ID,TITLE,TO_CHAR(RELEASEDAY, 'YYYY/MM/DD') as 任意の名前 FROM ACCOUNT"; ↑1回のSQLで全部取得できるはず。 as は列に任意の名前をつけたい場合に使用します。 TO_CHARとか使っているとTO_CHAR(RELEASEDAY, 'YYYY/MM/DD') って名前の列として取得されるので名前を別途つけなおしています。 SQLの初歩なのでJavaと一緒に勉強すると今後役立つと思いますよ。

halloblue
質問者

補足

ありがとうございます! TO_CHARでちゃんと表示することができました。 次は、replaceでの置換に挑戦してみたいと思います。

その他の回答 (2)

回答No.2

SQLで取得するときに日付フォーマット指定して取得する方法もあります。 oracleだとこんな感じ。 select TO_CHAR(sysdate, 'YYYY/MM/DD') as today from dual

halloblue
質問者

補足

ありがとうございます。 サーブレットでSQLを発行しているのですが、 String sql ="SELECT ID,TITLE,RELEASEDAY FROM ACCOUNT"; という感じで、テーブルの情報を持ってきているのですが、以下のように、 String sql ="SELECT ID,TITLE,RELEASEDAY FROM ACCOUNT"; String sql2 ="SELECT TO_CHAR(RELEASEDAY, 'YYYY/MM/DD') as today FROM ACCOUNT"; とすれば、webブラウザで表示できるのでしょうか? それと、 as today の部分が、どういう働きをしてくれるのか、よくわからないのですがご解説していただけませんでしょうか?

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

リファレンス参照しましたか。 http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)

halloblue
質問者

補足

ありがとうございます。 一応添付していただいたURLのところまでは、どうにかたどりついていたのですが、どう利用すればよいのか、わからなかったのです... ちょっとほかに近そうなのを見つけたので、そっちを試してみます。 ありがとうございました!

関連するQ&A

専門家に質問してみよう