0

クエリを実行しています

select level as VERSION,
name as DESCRIPTION,code as CODE,created as RELEASEDATE
,SUBSTR(name, INSTR(name, '.',-1)+1) as TYPE
from mytable
where code = 'HX56UO'

次のような結果が得られます

Type    Version     Description       Release Date   
.exe    3.0.2   MPC560xB MCAL Autosar 3.x    15sep2011_00:00:00

この2011年9月15日のようなリリース日が必要であり、この結果値をBeansetメソッドで設定する必要があります。

public void setLastDate(java.util.Calendar newLastPubDate) {

    lastDate = newLastDate;

}

setメソッドはカレンダーであるため、結果セットから上記の値を設定する際に必要な型キャストは何ですか。このように値を設定してみました

if (rs.getDate("RELEASEDATE") != null ) {
Bean.setLastPubDate(rs.getdate"RELEASEDATE"));
}

しかし、それは日付形式ではなく、値を設定する方法をカレンダーで示しています。これを解決するのを手伝ってください。ありがとう。

4

2 に答える 2

3
if (rs.getDate("RELEASEDATE") != null ) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(rs.getDate("RELEASEDATE"));
    Bean.setLastPubDate(calendar);
}

編集: 後でカレンダーを文字列に変換して表示する場合は、SimpleDateFormatを使用できます。

String formatted = new SimpleDateFormat("dd MMMM yyyy").format(bean.getLastPubDate().getTime());
于 2012-06-15T11:36:10.953 に答える
2

あなたのcreated列はVARCHAR2- 日付を として保存しないことは非常に悪い習慣DATEですが、今はスキップします - どこかで日付型に変換する必要があり、クエリではおそらく最も簡単です:

select level as VERSION,
    name as DESCRIPTION,
    code as CODE,
    TO_DATE(created,'DDMONYYYY_HH24:MI:SS') as RELEASEDATE,
    SUBSTR(name, INSTR(name, '.',-1)+1) as TYPE
from mytable
where code = 'HX56UO'

結果セットから引き続き使用できgetDate()、Bean メソッドを呼び出すときにその Date を Calendar オブジェクトに変換する必要があります。

Bean.setLastPubDate(Calendar.getInstance().setTime(rs.getDate("RELEASEDATE"));
于 2012-06-15T11:36:34.013 に答える