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

兰云溪 2012-11-02 04:12:19
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了没找到我想要的东西,先谢过了!
...全文
1235 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
兰云溪 2012-11-11
  • 打赏
  • 举报
回复

嗯,看书+实践 。我终于弄明白了,是时间格式的问题。 谢谢各位。
似梦飞花 2012-11-10
  • 打赏
  • 举报
回复
select to_char(sysdate,'yyyy-MM-DD HH12:MI:SS'),case when to_char(sysdate,'HH24')>12 then 'pm' else 'am' end from dual
tanganggood 2012-11-09
  • 打赏
  • 举报
回复
24小时制 然后你自己转换不就得了。。 0-12 AM 13-24 转换成PM(-12)
兰云溪 2012-11-08
  • 打赏
  • 举报
回复
引用 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……


我执行的结果为什么跟你的不一样呢/
西风授码 2012-11-06
  • 打赏
  • 举报
回复
引用 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还是什么?
西风授码 2012-11-06
  • 打赏
  • 举报
回复
你那个真不知道怎么换了。。。。换成24小时制呗
兰云溪 2012-11-05
  • 打赏
  • 举报
回复
引用 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,实践出真知,稍后亲自实验下。再次表示感谢!
yf520gn 2012-11-02
  • 打赏
  • 举报
回复

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>
yf520gn 2012-11-02
  • 打赏
  • 举报
回复
答案是语法错误。
yf520gn 2012-11-02
  • 打赏
  • 举报
回复

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>
翁少 2012-11-02
  • 打赏
  • 举报
回复
24小时制不行吗
兰云溪 2012-11-02
  • 打赏
  • 举报
回复
TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am')转换后的结果是什么? 是24-Nov-1999 12:00:00 am吗?如果是,那它的转换机制和原理是什么?如果不是,那应该是什么并请解释下原理,小女子灰常感谢!
qq53090120 2012-11-02
  • 打赏
  • 举报
回复
貌似没遇到过这种业务。。。。。。。。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧