ora-01830错误:日期格式图片在转换整个输入字符串之前结束

解决Oracle数据库中从String类型到Timestamp类型转换的问题,通过调整to_date函数中的格式参数及使用substr函数来移除多余的'.0',从而避免ORA-01830错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracl9i 数据库中

原有数据类型为string,

现在是timestamp

 

原有数据类似

2008-02-25 16:12:46.0

 

现在转换出现问题

insert into koalra.TB_USER_CERT
(CERT_ID,USER_ID,CERT_STATUS_ID,CERT_SN,CERT_NOT_BEFORE,
CERT_NOT_AFTER,CERT_SUBJECT_DN,CERT_EXTENSION,CERT_ISSUER_DN,CERT_ENTITY_ID,
CERT_SIGN_DATE,CERT_1,CERT_2,CERT_POLICY_NAME)

select CERT_ID,USER_ID,CERT_STATUS_ID,CERT_SN,to_date(CERT_NOT_BEFORE,'YYYY-MM-DD   HH24:MI:SS'),
to_date(CERT_NOT_AFTER,'YYYY-MM-DD   HH24:MI:SS'),CERT_SUBJECT_DN,CERT_EXTENSION,CERT_ISSUER_DN,CERT_ENTITY_ID,
to_date(CERT_SIGN_DATE,'YYYY-MM-DD   HH24:MI:SS') ,CERT_1,CERT_2,CERT_POLICY_NAME
from uaapra.TB_USER_CERT ;
commit;

ora-01830错误:日期格式图片在转换整个输入字符串之前结束 

 

insert into koalra.TB_USER_CERT
(CERT_ID,USER_ID,CERT_STATUS_ID,CERT_SN,CERT_NOT_BEFORE,
CERT_NOT_AFTER,CERT_SUBJECT_DN,CERT_EXTENSION,CERT_ISSUER_DN,CERT_ENTITY_ID,
CERT_SIGN_DATE,CERT_1,CERT_2,CERT_POLICY_NAME)

select CERT_ID,USER_ID,CERT_STATUS_ID,CERT_SN,to_date(substr(CERT_NOT_BEFORE,0,19),'YYYY-MM-DD   HH24:MI:SS'),
to_date(substr(CERT_NOT_AFTER,0,19),'YYYY-MM-DD   HH24:MI:SS'),CERT_SUBJECT_DN,CERT_EXTENSION,CERT_ISSUER_DN,CERT_ENTITY_ID,
to_date(substr(CERT_SIGN_DATE,0,19),'YYYY-MM-DD   HH24:MI:SS') ,CERT_1,CERT_2,CERT_POLICY_NAME
from uaapra.TB_USER_CERT ;
commit;

 

这样转换之后就可以了

 

 

有些人说

把sql语句输出作了以下的实验,发现是时间多了一个.0

后来的办法是先把这个时间转成to_char,再转成to_date,

但是我使用to_char没有成功。。。。。所以算了吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值