这就是oracle的日期格式。alter session set nls_date_format=''; 更改session日期显示格式(仅对当前session有效)alter system set nls_date_format=''; 更改系统日期显示格式(对所有session均有效) SQL> select sysdate from dual;SYSDATE -------------- 28-1月 -10SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';会话已更改。SQL> select sysdate from dual;SYSDATE ------------------- 2010-01-28 11:04:13SQL> alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';会话已更改。SQL> select sysdate from dual;SYSDATE ------------------- 2010/01/28 11:04:27SQL> alter session set nls_date_format='mm-dd-yyyy hh24:mi:ss';会话已更改。SQL> select sysdate from dual;SYSDATE ------------------- 01-28-2010 11:04:41SQL>
to_date('10-1月 -09','yy-mon-dd')
SELECT to_date('28-12月 -10','dd-mon-yy') FROM dual; 可以。 谢谢了!
select to_date( '10-1月 -09 ','yy-mon-dd','nls_date_language=''SIMPLIFIED CHINESE''') from dual; 如果nls_date_language格式不对应,可以这么指定
--如果一不小心在将日期型值插入一个字符字段,就会变成楼主所述情况 --可以用如下方式来转,a为要转换的字段 select to_date(substr(a,-2)||lpad(substr(a,4,instr(a,'月')-4),2,'0')||substr(a,1,2),'yymmdd') from test;
更改session日期显示格式(仅对当前session有效)alter system set nls_date_format='';
更改系统日期显示格式(对所有session均有效)
SQL> select sysdate from dual;SYSDATE
--------------
28-1月 -10SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';会话已更改。SQL> select sysdate from dual;SYSDATE
-------------------
2010-01-28 11:04:13SQL> alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';会话已更改。SQL> select sysdate from dual;SYSDATE
-------------------
2010/01/28 11:04:27SQL> alter session set nls_date_format='mm-dd-yyyy hh24:mi:ss';会话已更改。SQL> select sysdate from dual;SYSDATE
-------------------
01-28-2010 11:04:41SQL>
to_date('10-1月 -09','yy-mon-dd')
可以。
谢谢了!
如果nls_date_language格式不对应,可以这么指定
--可以用如下方式来转,a为要转换的字段
select to_date(substr(a,-2)||lpad(substr(a,4,instr(a,'月')-4),2,'0')||substr(a,1,2),'yymmdd') from test;