to_char好理解,to_char(sysdate,'mm')就是将前面的时间按照后面参数给出相应的年,月,日等等但是to_date为什么是这个格式:to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss')前面谁都知道'2005-01-01 13:14:20是年月日时分秒,为什么后面还要带上它的对称的格式?而转换出来的是另一种格式?比如:to_date('2002-08-26','yyyy-mm-dd'));
26-8月 -02to_date怎么用?
26-8月 -02to_date怎么用?
to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss')----oracle规定
'2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss' 前后格式要对称 不然报错至于显示的结果不是这样 那的看你的默认显示的格式
转换的日期格式是yyyy-mm-dd,那转换后就是2002-08-26啊为什么是26-8月 -02
我系统默认的格式是不是下面这样的?SQL> select sysdate from dual;
SYSDATE
-----------
2010-12-16那为什么还会显示26-8月 -02?
SQL> select sysdate from dual;SYSDATE
-----------
2010-12-16是2010-12-16的格式,而上面那个to_date('2002-08-26','yyyy-mm-dd'));
后却是26-8月 -02?是不是应该2002-28-26?
SQL>select sysdate from dual;SYSDATE
----------
21-12月-04数据库中的日期字段中的格式为yyyy-mm-dd hh24miss,导出的数据中也要这样的格式,设置nls_date_format就可以实现,如下:
1.用alter session来修改
SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
SQL> select sysdate from dual;SYSDATE
-------------------
2004-12-21 14:44:242.在OS中设置nls_date_format
打开一个控制台窗口
C:>SET NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS //注意:这里YYYY-MM-DD HH24:MI:SS不能加引号,但在unix系统中要加
SQL> select sysdate from dual;SYSDATE
-------------------
2004-12-21 14:45:44这样改了以后只对当前的控制台窗品有效,如果不想每次都设置,就修改系统/用户环境变量,新增一个nls_date_format变量,值为YYYY-MM-DD HH24:MI:SS
打开一个控制台窗口
SQL> select sysdate from dual;SYSDATE
-------------------
2004-12-21 14:46:15
修改下日期的格式…
也许你会碰到在cmd查询表后的结果集一团糟的情况等一系列显示 表现问题,这些问题除了临时的在会话中通过 set 语句解决外,更加有效方法是去x:\oracle\product\10.2.0\db_1\sqlplus\admin下的glogin.sql脚本下进行编辑,永久有效,不用每次都设置。