在书上看到
select to_date('31-JUL-2003') from dual;为什么不能运行呢?to_date到底该怎么写呢?

解决方案 »

  1.   

    eygle@SZTYORA> alter session set nls_date_language=american;会话已更改。eygle@SZTYORA> select to_date('31-JUL-2003','dd-mm-yyyy') from dual;TO_DATE('31-JUL-200
    -------------------
    2003-07-31 00:00:00
      

  2.   

    eygle@SZTYORA> select to_date('31-JUL-2003','DD-MM-YYYY','NLS_DATE_LANGUAGE = American') from dual;TO_DATE('31-JUL-200
    -------------------
    2003-07-31 00:00:00
      

  3.   

    不  ,可以返回    31-JUL-2003  嘛?
      

  4.   

    scott@SZTYORA> alter session set nls_date_format='DD-MON-YYYY';会话已更改。scott@SZTYORA> alter session set nls_date_language=american;会话已更改。scott@SZTYORA> select to_date('31-JUL-2003','DD-MM-YYYY','NLS_DATE_LANGUAGE = American') from dual;TO_DATE('31-JU
    --------------
    31-JUL-2003
      

  5.   

    -- 日期类型在数据库中的存储格式是不变的,
    -- 你看到的结果 '31-JUL-2003' 这只是日期的一种显式格式而已,它受你当前的两个主要参数的影响:
    -- 这两个参数是:nls_date_format、nls_date_language;
    -- 你要在当前会话中指定其格式的话,有两种方法:-- 方法一:当你每次链接到会话中的时候,执行:
    alter session set nls_date_format='你指定的默认日期格式';
    alter session set nls_date_format='你指定的默认日期语言';-- 方法二:修改 $ORACLE_HOME/sqlplus/admin/glogin.sql 文件,
    --             在其中添加方法一中这两句话,就OK啦!这样:当你用SQL*Plus链接时,
    --             它会读取这个文件,-设置你指定的默认格式!-- 当然:还可以修改注册表项等!
      

  6.   

    也许是select to_char(sysdate,'DD-MM-YYYY') from dual;?
      

  7.   


    -- 还受其 nls_date_language 参数的影响,所以你上面指定的同样的格式'DD-MM-YYYY',
    -- 在不同客户端的SQL*Plus环境中,其显示结果也未必一样!
    -- (因为其 nls_date_language 的不同,也会影响你的结果!)-- 屁大的问题,你还要我啰嗦到几点,你才明白呢?
      

  8.   


    -- 哦,我说错了,这个语句在不同的SQL*Plus环境中,其显示结果应该是一样!
    -- 因为是to_char() !
      

  9.   

    to_date('日期数据','格式化的形式')
      

  10.   

    select to_date('31-JUL-2003','dd-mm-yyyy') from dual