Oracle ORA-01861: 文字与格式字符串不匹配(日期格式导致的问题)

1.问题

如图所示,Oracle ORA-01861: 文字与格式字符串不匹配。这里的日期格式出现问题,导致了ORA-01861错误。

2.解决方式

原因:
如果直接按照字符串方式,或者直接使用to_date('2010-01-01'),没有指定日期格式,就会导致你插入的时间格式和数据库现有的时间格式不一致,从而报错:ORA-01861: 文字与格式字符串不匹配。所以必须指定日期格式 。

解决方法:
指定日期格式:
to_date('2010-01-01','yyyy-mm-dd')
to_date('2010-01-01 10:10:10' , 'yyyy-mm-dd hh24:mi:ss')

如图:

但是问题还没有结束,我在使用select搜索READER表后,发现数据库默认的时间格式并不是我想要的格式,Oracle数据库的默认日期格式,即"DD-MON-RR",其中:

  • "DD" 表示日期的两位数的天。
  • "MON" 表示缩写的月份。
  • "RR" 表示两位数的年份。
    如下图所示:

选择直接修改Oracle默认日期格式即可,如下图所示:
ALTER SESSION SET NLS_DATE_FORMAT ='YYYY-MM-DD';
ALTER SESSION SET NLS_DATE_FORMAT ='YYYY-MM-DD HH24:MI:SS';

成功修改,且之后插入数据时无需再使用to_date,直接使用’yyyy-mm-dd’格式即可,如下图所示:

posted @   DawnTraveler  阅读(12092)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 我与微信审核的“相爱相杀”看个人小程序副业
· DeepSeek “源神”启动!「GitHub 热点速览」
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示