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

前两天遇到的问题:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值