前兩天遇到的問題:
當PL/SQL中表的字段爲Date時,但用getString的方法取出來之後的字符串爲“2010-02-27 00:00:00.0”格式。
直接將其to_char("2010-02-27 00:00:00.0","yyyy-MM-dd hh24:mi:ss")將其插入到數據庫時會報“java.lang.Exception: java.sql.SQLException: ORA-01830: 日期格式圖片在轉換整個輸入字符串之前結束”這樣的錯誤。
解決方法:
SimpleDateFormat df=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String updatetime="null";
Calendar cal_updatetime=to_Date(“2010-02-27 00:00:00.0”);
if(cal_updatetime!=null){
updatetime="to_date('"+df.format(cal_updatetime.getTime())+"','yyyy/mm/dd hh24:mi:ss')";
}
String inSql=“insert into TEST(TIME) values("+updatetime+")”;
private Calendar to_Date(String Date_str) throws ParseException{
java.text.SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
Calendar cal = df.getCalendar();
boolean sqc = false; // 是否存在時區差
if (Date_str.endsWith("T")) {
sqc = true;
}
Date_str = Date_str.replaceAll("[^0-9]","");
if ("".equals(Date_str)) {
return null;
} else {
while (Date_str.length() < 14) {
Date_str = Date_str + "0";
}
java.util.Date date = df.parse(Date_str);
cal.setTime(date);
if (sqc) {
cal.set(Calendar.HOUR_OF_DAY,cal.get(Calendar.HOUR_OF_DAY) + 8);
}
return cal;
}
}