2011-04-19  10:57:48 AM 我想把时间转换成如上结果,数据库语言是utf-8,请问怎么解决?

解决方案 »

  1.   

    用to_char()
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss am') from dual或者
    alter session nls_date_format='yyyy-mm-dd hh24:mi:ss am'
      

  2.   

    with a as
    (
     select to_date('2011-04-19 10:57:48','yyyy-mm-dd hh24:mi:ss')dt from dual
    )
    select to_char(dt,'yyyy-mm-dd hh24:mi:ss') ||'  ' || decode(to_char(dt,'am'),trim('上午'),'AM',trim('下午'),'PM') from a
      

  3.   

    to 1L:
    你的结果是 2011-04-19 11:25:58 上午   to 2L:你的结果是对的
      

  4.   

    eygle@SZTYORA> alter session set nls_date_format='yyyy-mm-dd hh:mi:ss am';会话已更改。eygle@SZTYORA> select sysdate from dual;SYSDATE
    ------------------------
    2011-04-19 11:31:10 上午eygle@SZTYORA> alter session set nls_date_language=american;会话已更改。eygle@SZTYORA> select sysdate from dual;SYSDATE
    ----------------------
    2011-04-19 11:31:28 am
      

  5.   

    2L的会显示“上午”应该是楼主的oracle安装的时区是中国的关系吧
      

  6.   

    和时区没关系。。to careyling: 我测试过了,2L的显示的是AM而不是上午你可以测试下
      

  7.   


    -- 是上午还是am,跟这个参数有关: alter session set nls_date_language=american;
    -- 我4楼的代码,你测试过吗?
      

  8.   

    -- 要不:你就在转换的时候指定一下nls_date_language,如下所示:
    eygle@SZTYORA> select to_char(sysdate,'yyyy-mm-dd hh:mi:ss am','NLS_DATE_LANGUAGE = American') from dual;TO_CHAR(SYSDATE-1/2,'YYYY-MM-DDHH:MI:SSAM','
    --------------------------------------------
    2011-04-19 02:51:02 am-- 或者:
    eygle@SZTYORA>  select to_char(sysdate,'yyyy-mm-dd hh:mi:ss pm','NLS_DATE_LANGUAGE = American') from dual;TO_CHAR(SYSDATE,'YYYY-MM-DDHH:MI:SSPM','NLS_
    --------------------------------------------
    2011-04-19 02:52:14 pm-- 日期、时间格式中,用am还是pm返回的结果是一样的!
      

  9.   

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss am') from dual
      

  10.   

    to luoyoumou:你4L的代码不行,10L的可以,不好意思,当时很忙,没来得急测试你的代码~~~
      

  11.   

    你用
    select to_char(表子段,'yyyy-mm-dd hh24:mi:ss am') from 表名
    试试
      

  12.   

    ALTER SESSION SET nls_date_language = 'AMERICAN';
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss am') from dual;
    --结果肯定是你想要的