前两天遇到的问题:
当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;
}
}