Oracle支持中文日期,比如标题中的这种格式 21-1月-21 02.23.12.150 下午 这里的150是毫秒。

下面测试一下,如何向数据表中插入这种格式的日期。

测试表如下:

CREATE TABLE OJDBC_TEST (
  id NUMBER NOT NULL ,
  createtime TIMESTAMP(3)
);
ALTER TABLE OJDBC_TEST ADD CONSTRAINT "SYS_C007002" PRIMARY KEY (id);

现插入一条数据,insert语句如下:

insert into OJDBC_TEST values(1,'21-1月-21 02.23.12.150 下午');

报错如下:

ORA-01843: not a valid month,这是因为Oracle默认不支持中文日期

 

执行select * from V$NLS_PARAMETERS; 语句,查询nls_date_language参数

Oracle插入中文日期21-1月-21 02.23.12.150 下午 报错ORA-01843: not a valid month_Oracle

 

默认语言是AMERICAN,执行ALTER SESSION SET nls_date_language='SIMPLIFIED CHINESE'; 语句设置为中文,注意是会话级别,每次会话都要设置一次。

修改成中文后,再执行insert,成功!

Oracle插入中文日期21-1月-21 02.23.12.150 下午 报错ORA-01843: not a valid month_Oracle_02