- ベストアンサー
DBからもってきた文字を置換したいのですが、うまくいきません。
オールインワンeclipse3.4 tomcat5.5を使用してoracle9iに入れたテーブルをwebブラウザに表示しました。 すると、出版日という項目が1989-10-01と、"-"で区切られて表示されてしまいます。 この"-"を、"/"に置き換えて表示させたいのですが、replaceを使うところまでは分かったのですが、どこにどう記述すればいいのか分かりません。 どなたかご指導お願いいたします。 表示方法は、サーブレットでSQLを発行してJSPで表示しています。 どなたかご指導お願いいたします。
- みんなの回答 (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と一緒に勉強すると今後役立つと思いますよ。
その他の回答 (2)
- ProKaseifu
- ベストアンサー率51% (98/192)
SQLで取得するときに日付フォーマット指定して取得する方法もあります。 oracleだとこんな感じ。 select TO_CHAR(sysdate, 'YYYY/MM/DD') as today from dual
補足
ありがとうございます。 サーブレットで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)
リファレンス参照しましたか。 http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)
補足
ありがとうございます。 一応添付していただいたURLのところまでは、どうにかたどりついていたのですが、どう利用すればよいのか、わからなかったのです... ちょっとほかに近そうなのを見つけたので、そっちを試してみます。 ありがとうございました!
補足
ありがとうございます! TO_CHARでちゃんと表示することができました。 次は、replaceでの置換に挑戦してみたいと思います。