当前位置: 首页 > 知识库问答 >
问题:

ORA-01843:数据类型转换无效的月份

景志
2023-03-14
TO_CHAR( TO_DATE(sysdate ||' '||TIMING.TIME,'dd-MON-RRRR HH:MIAM'),'dd-MON-RRRR HH:MIAM') as time

NLS语言是美国语言。

共有1个答案

段干麒
2023-03-14

TO_DATE(sysdate

那是不对的。

永远不要在日期数据类型上应用TO_DATE。它迫使Oracle:

    null
SQL> alter session set nls_date_format='DD-MM-YYYY HH:MI:SS AM';

Session altered.

SQL> SELECT to_date(TO_CHAR(sysdate, 'mm/dd/yyyy')
  2    ||' '
  3    ||'09:30AM', 'mm/dd/yyyy hh:miAM') TIME
  4  FROM dual;

TIME
----------------------
14-10-2015 09:30:00 AM

记住,

  • to_date用于将字符串转换为日期。
  • to_char用于以所需的字符串格式显示日期。

为您修改的查询:

to_date(TO_CHAR(sysdate, 'mm/dd/yyyy') ||' ' ||TIMING.TIME, 'mm/dd/yyyy hh:miAM')
AS "TIME"
 类似资料:
  • 我得到java.sql.sqlDataException:ORA-01843:运行时不是一个有效的月份。任何帮助都很感激!

  • 我在Oracle DB中有一个列,它是数据类型。存储在此列中的典型值类似于。我试图得到所有的记录,其中该专栏有记录后2015年8月1日。 但是,我得到的是。我哪里做错了?

  • 问题内容: 我使用此查询创建了一个表现 在,当我尝试使用插入一些数据时,遇到此错误。 我做错了什么? 问题答案: 不是日期,而是一个字符串。 当使用session参数的值作为格式掩码将Oracle非日期文字插入到列中时,Oracle将对其进行隐式处理( 注意:这是一个session参数,属于客户端;它不是全局设置 )。如果非日期文字与该格式匹配,则它将起作用(如果不匹配,则它将不起作用)-但是,如

  • 我为PHP更改了OCI8版本,由于该查询不起作用: 我收到这个消息: 消息:oci_execute():ora-01843:不是有效月份 它与Toad一起用于Oracle11。你有什么解决办法吗? 谢谢:)