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月 -02
to_date怎么用?

解决方案 »

  1.   

    26-8月-02是session设定的问题
    to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss')----oracle规定
      

  2.   

    to_date()是字符串转换成日期 后面的‘yyyy-mm-dd ’是转换后的日期格式,必须和你字符串的格式一致
      

  3.   


    '2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss' 前后格式要对称 不然报错至于显示的结果不是这样 那的看你的默认显示的格式
      

  4.   


    转换的日期格式是yyyy-mm-dd,那转换后就是2002-08-26啊为什么是26-8月 -02
      

  5.   


    我系统默认的格式是不是下面这样的?SQL> select sysdate from dual;
     
    SYSDATE
    -----------
    2010-12-16
    那为什么还会显示26-8月 -02
      

  6.   

    http://topic.csdn.net/u/20101214/17/137255ab-86f7-4813-97fb-5973db2ed335.html参照
      

  7.   

    为什么我的这个查询
    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
      

  8.   

    to_date是将字符串格式转换为OCIDate的内部数据结构。建议看看OCI方面的关于日期的定义。
      

  9.   

    我找到的:win下默认的格式为DD-MM-yy ,如下:
    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
      

  10.   

    ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY"年"MM"月"DD"日"';
    修改下日期的格式…
      

  11.   

    2.更改SQL*PLUS的会话设置。
        也许你会碰到在cmd查询表后的结果集一团糟的情况等一系列显示 表现问题,这些问题除了临时的在会话中通过 set 语句解决外,更加有效方法是去x:\oracle\product\10.2.0\db_1\sqlplus\admin下的glogin.sql脚本下进行编辑,永久有效,不用每次都设置。