一个表存的日期是 date型 YYYY/MM/DD的格式,要转换成 比如 21 NOV 1956  的形式,能通过SQL语句实现吗?谢谢

解决方案 »

  1.   


    SQL> alter session set nls_language='american';Session altered.SQL> select to_char(sysdate,'dd mon yyyy') from dual;TO_CHAR(SYSDAT
    --------------
    02 nov 2010
      

  2.   

    SELECT To_Char(SYSDATE,'dd mon yyyy','nls_language=american') FROM dual;
      

  3.   

    多谢各位,但我执行后怎么显示的是:
    03 11月 2010
    不是 类似 21 NOV 1956   (中间月份要求是三位的英文)
      

  4.   

    --1、
    SQL> alter session set nls_language='american';--2、
    select to_char(SYSDATE,'dd mon yyyy','nls_language=american') FROM dual;
      

  5.   

    你要的这个结果是美国时间啊,所以你要把你的会话字符集改成american,然后在用to_char(),函数转换即可select to_char(SYSDATE,'dd mon yyyy','nls_language=american') FROM dual;
      

  6.   


    SQL> alter session set nls_date_language=american  --默认是中文的,把会话改成美国
      2  /会话已更改。SQL> edi
    已写入 file afiedt.buf  1  select to_date('2010/10/12','yyyy/mm/dd'),
      2  to_char(to_date('2010/10/12','yyyy/mm/dd'),'dd mon yyyy')
      3* from dual
    SQL> /TO_DATE('201 TO_CHAR(TO_
    ------------ -----------
    12-OCT-10    12 oct 2010