SQLから日付を取得する場合

まぁ、日付に限ったわけではないのですが
たまたま日付だったので、そのままエントリーにしたいと思います。


あるDBで以下のようにレコードが格納されていたとします。

ID ITEM_NAME ITEM_CREATE_DATE
1 PEN 2009-09-09 12:15:30

条件として画面に表示する日付を「yyyy/MM/dd」にしたい場合
どのようにすれば処理の効率がよくなるのか?


自分が考えた方法は、以下の2つ。

  1. SELECTして結果を得るときに日付を整形する。
  2. 表示する直前、Javaで整形する。

O/RマッパーのEntityクラスでアノテーションを指定すれば
変換したものを格納してくれたような気もしますが
ここでは考えないことにします。


実際、どっちがいいのだろうか・・・
パッと思ったのが「Javaで整形した方がよいのでは?」なのですが
ビジネスロジックに処理を書かなければいけないため、バグの原因に
なりかねないかな?と考えております。
それなら「SQLで整形してもらいJavaで何もせず表示するためのロジックを
書くだけでいい」という流れにすればバグも少なくなると考えてみたり。


しかし、SQLで整形するとなるとSELECTで「*」が使えないです。
「逆に『*』は使わない方がいい」という話も聞きましたが、実際どうなんでしょうか。


今は、フレームワークを使用してこのようなこと
考えないで済むのかもしれませんが、原点に戻って考えてみました。


以上