TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon-yyyy hh:mi am') 
  ='24-Nov-1999 12:00:00 am' 
  TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh') ='24-Nov-1999 08:00:00 am'
哪位大侠给解释下,我是菜鸟,不明白to_date()是怎么转换am、pm时间的,百度google了没找到我想要的东西,先谢过了!

解决方案 »

  1.   

    TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am')转换后的结果是什么? 是24-Nov-1999 12:00:00 am吗?如果是,那它的转换机制和原理是什么?如果不是,那应该是什么并请解释下原理,小女子灰常感谢!
      

  2.   


    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as SYSSQL> select TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am') from dual;select TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am') from dualORA-01843: 无效的月份SQL> 
      

  3.   


    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as SYSSQL> select TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am') from dual;select TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am') from dualORA-01843: 无效的月份SQL> alter session set nls_language=AMERICAN;Session alteredSQL> select TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am') from dual;TO_DATE('24-NOV-199908:37PM','
    ------------------------------
    1999/11/24 20:37:00SQL> 
      

  4.   

    谢谢楼上的大哥,这两天有事都没有及时登录CSDN,我是新手,想学下oracle,刚刚装了oracle10g,实践出真知,稍后亲自实验下。再次表示感谢!
      

  5.   

    我想问问你alter session set nls_language=AMERICAN;
    这个语句是什么意思?属于DDL还是什么?
      

  6.   

    24小时制然后你自己转换不就得了。。0-12 AM13-24 转换成PM(-12)
      

  7.   

    select to_char(sysdate,'yyyy-MM-DD HH12:MI:SS'),case when to_char(sysdate,'HH24')>12 then 'pm' else 'am' end from dual