SQLから日付を取得する場合
まぁ、日付に限ったわけではないのですが
たまたま日付だったので、そのままエントリーにしたいと思います。
あるDBで以下のようにレコードが格納されていたとします。
ID | ITEM_NAME | ITEM_CREATE_DATE |
---|---|---|
1 | PEN | 2009-09-09 12:15:30 |
条件として画面に表示する日付を「yyyy/MM/dd」にしたい場合
どのようにすれば処理の効率がよくなるのか?
自分が考えた方法は、以下の2つ。
- SELECTして結果を得るときに日付を整形する。
- 表示する直前、Javaで整形する。
O/RマッパーのEntityクラスでアノテーションを指定すれば
変換したものを格納してくれたような気もしますが
ここでは考えないことにします。
実際、どっちがいいのだろうか・・・
パッと思ったのが「Javaで整形した方がよいのでは?」なのですが
ビジネスロジックに処理を書かなければいけないため、バグの原因に
なりかねないかな?と考えております。
それなら「SQLで整形してもらいJavaで何もせず表示するためのロジックを
書くだけでいい」という流れにすればバグも少なくなると考えてみたり。
しかし、SQLで整形するとなるとSELECTで「*」が使えないです。
「逆に『*』は使わない方がいい」という話も聞きましたが、実際どうなんでしょうか。
今は、フレームワークを使用してこのようなこと
考えないで済むのかもしれませんが、原点に戻って考えてみました。
以上