PL/SQL表中date类型的字段用getString方法取出之后的格式化为日期的方法

来源:互联网 发布:手机制作mv软件 编辑:程序博客网 时间:2024/05/20 17:24

前两天遇到的问题:

当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;
}
}

0 0
原创粉丝点击