加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【填坑】ORA-01846 周中的日无效

发布时间:2020-12-12 13:44:45 所属栏目:百科 来源:网络整理
导读:在数据库迁移过程有如下时间格式: Sun Jul 22 18:14:38 CST 2018 格式化为DATE: TO_DATE(‘Sun Jul 22 18:14:38 CST 2018‘,‘Dy MON DD HH24:MI:SS "CST" YYYY‘) 导入ORACLE11g中报错信息为 ORA-01846 周中的日无效 解决过程: 在SQL无法修改的情况下,解

在数据库迁移过程有如下时间格式:

Sun Jul 22 18:14:38 CST 2018

格式化为DATE:

TO_DATE(‘Sun Jul 22 18:14:38 CST 2018‘,‘Dy MON DD HH24:MI:SS "CST" YYYY‘)

导入ORACLE11g中报错信息为

ORA-01846 周中的日无效

解决过程:
在SQL无法修改的情况下,解决数据库的时间格式问题
一、确认数据库语言环境
使用SQL语句查看数据库存放数据的语言环境参数:

SELECT * FROM V$NLS_PARAMETERS;


确认目前数据库时间格式为中文简体,SQL语句中日期格式为英文。
二、根据时间修改NLS_DATE_LANGUAGE参数

  • 方法一
    在格式化时为日期指定语言参数:
TO_DATE(‘Sun Jul 22 18:14:38 CST 2018‘,‘Dy Mon DD HH24:MI:SS YYYY‘,‘NLS_DATE_LANGUAGE = American‘)

  • 方法二
    修改当前会话参数
alter session set nls_date_language=‘american‘;

修改成功后:

操作日期格式:

当然,修改nls_date_language参数的方法不止这两种,只是在此场景下适合用这两种方法解决。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读