日期:2014-05-17  浏览次数:21189 次

oracle里to_date()怎么转换am、pm时间?
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了没找到我想要的东西,先谢过了!
------最佳解决方案--------------------

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
Connected as SYS

SQL> 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 dual

ORA-01843: 无效的月份

SQL> alter session set nls_language=AMERICAN;

Session altered

SQL> 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:00

SQL> 

------其他解决方案--------------------
貌似没遇到过这种业务。。。。。。。。
------其他解决方案--------------------
TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am')转换后的结果是什么? 是24-Nov-1999 12:00:00 am吗?如果是,那它的转换机制和原理是什么?如果不是,那应该是什么并请解释下原理,小女子灰常感谢!
------其他解决方案--------------------
24小时制不行吗
------其他解决方案--------------------

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
Connected as SYS

SQL> 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 dual

ORA-01843: 无效的月份

SQL> 

------其他解决方案--------------------
答案是语法错误。
------其他解决方案--------------------
引用:
SQL code123456789101112131415161718192021Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as SYS SQL> select TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh……



谢谢楼上的大哥,这两天有事都没有及时登录CSDN,我是新手,想学下oracle,刚刚装了oracle10g,实践出真知,稍后亲自实验下。再次表示感谢!
------其他解决方案--------------------
你那个真不知道怎么换了。。。。换成24小时制呗
------其他解决方案--------------------
引用:
SQL code123456789101112131415161718192021Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as SYS SQL> select TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh……

我想问问你
alter session set nls_language=AMERICAN;

这个语句是什么意思?属于DDL还是什么?
------其他解决方案--------------------
引用:
SQL code123456789101112131415161718192021Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as SYS SQL> select TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh……