='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
谢谢楼上的大哥,这两天有事都没有及时登录CSDN,我是新手,想学下oracle,刚刚装了oracle10g,实践出真知,稍后亲自实验下。再次表示感谢!
#8
你那个真不知道怎么换了。。。。换成24小时制呗
#9
我想问问你
alter session set nls_language=AMERICAN;
这个语句是什么意思?属于DDL还是什么?
#10
我执行的结果为什么跟你的不一样呢/
#11
24小时制
然后你自己转换不就得了。。
0-12 AM
13-24 转换成PM(-12)
然后你自己转换不就得了。。
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
嗯,看书+实践 。我终于弄明白了,是时间格式的问题。 谢谢各位。
#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
谢谢楼上的大哥,这两天有事都没有及时登录CSDN,我是新手,想学下oracle,刚刚装了oracle10g,实践出真知,稍后亲自实验下。再次表示感谢!
#8
你那个真不知道怎么换了。。。。换成24小时制呗
#9
我想问问你
alter session set nls_language=AMERICAN;
这个语句是什么意思?属于DDL还是什么?
#10
我执行的结果为什么跟你的不一样呢/
#11
24小时制
然后你自己转换不就得了。。
0-12 AM
13-24 转换成PM(-12)
然后你自己转换不就得了。。
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
嗯,看书+实践 。我终于弄明白了,是时间格式的问题。 谢谢各位。