oracle里to_date()怎么转换am、pm时间?

时间:2020-12-23 08:16:01
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了没找到我想要的东西,先谢过了!

13 个解决方案

#1


貌似没遇到过这种业务。。。。。。。。

#2


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

#3


24小时制不行吗

#4



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> 

#5


答案是语法错误。

#6



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> 

#7


引用 6 楼 yf520gn 的回复:
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,实践出真知,稍后亲自实验下。再次表示感谢!

#8


你那个真不知道怎么换了。。。。换成24小时制呗

#9


引用 6 楼 yf520gn 的回复:
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还是什么?

#10


引用 6 楼 yf520gn 的回复:
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……


我执行的结果为什么跟你的不一样呢/
oracle里to_date()怎么转换am、pm时间?

#11


24小时制

然后你自己转换不就得了。。

0-12 AM

13-24 转换成PM(-12)

#12


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

#13


oracle里to_date()怎么转换am、pm时间?
嗯,看书+实践 。我终于弄明白了,是时间格式的问题。 谢谢各位。 

#1


貌似没遇到过这种业务。。。。。。。。

#2


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

#3


24小时制不行吗

#4



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> 

#5


答案是语法错误。

#6



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> 

#7


引用 6 楼 yf520gn 的回复:
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,实践出真知,稍后亲自实验下。再次表示感谢!

#8


你那个真不知道怎么换了。。。。换成24小时制呗

#9


引用 6 楼 yf520gn 的回复:
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还是什么?

#10


引用 6 楼 yf520gn 的回复:
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……


我执行的结果为什么跟你的不一样呢/
oracle里to_date()怎么转换am、pm时间?

#11


24小时制

然后你自己转换不就得了。。

0-12 AM

13-24 转换成PM(-12)

#12


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

#13


oracle里to_date()怎么转换am、pm时间?
嗯,看书+实践 。我终于弄明白了,是时间格式的问题。 谢谢各位。