查询 SQL语句的时候 出现oracle ora 01861 文字与字符串格式不匹配 百思不得其解!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询 SQL语句的时候 出现oracle ora 01861 文字与字符串格式不匹配 百思不得其解!相关的知识,希望对你有一定的参考价值。

SELECT *
FROM (SELECT IM.INFO_MAGA_ID,
IM.MAGA_TYPE,
IM.INFO_MAGA_TITLE,
IM.INFO_MAGA_NO,
IM.INFO_MAGA_EDITOR,
IM.INFO_MAGA_PHONE,
(CASE
WHEN IM.MAGA_TYPE = '1' THEN
IM.SEND_STAFF_NAME
ELSE
GET_STAFF_NAME(IM.INFO_MAGA_EDITOR)
END) AS T_INFO_MAGA_EDITOR,
(CASE
WHEN IM.MAGA_TYPE = '1' THEN
IM.SEND_DEPT_NAME
ELSE
(SELECT T_DEPT_NAME
FROM V_DEPT_TREE VDT
WHERE VDT.NODE = F_GET_STAFF_UNIT_ID(IM.INFO_MAGA_EDITOR))
END) AS T_INFO_MAGA_EDITOR_DEPT,
GET_STATE_DESC('INFO_MAGAZINE',
'INFO_MAGA_STATE',
IM.INFO_MAGA_STATE) AS T_INFO_MAGA_STATE,
IM.INFO_MAGA_READER,
IM.INFO_MAGA_CREATE_TIME,
IM.INFO_MAGA_YEAR,
IM.INFO_MAGA_SLEVEL,
(SELECT D.DEPT_NAME
FROM DEPT_TREE D
WHERE D.NODE =
(SELECT S.DEPT_NODE
FROM STAFF_INFO S
WHERE S.STAFF_ID = IM.INFO_MAGA_EDITOR)) RELEASEDEPT,
(CASE
WHEN IM.MAGA_TYPE = '1' THEN
CATE_NAME
ELSE
(SELECT IC.INFO_CATE_NAME
FROM INFO_CATEGORY IC
WHERE IC.INFO_CATE_ID = IM.INFO_MAGA_CATE)
END) AS T_INFO_MAGA_CATE,
IM.INFO_MAGA_CATE,
TO_CHAR(IM.INFO_MAGA_CREATE_TIME, 'YYYY-MM-DD') AS T_INFO_MAGA_CREATE_TIME,
IM.INFO_MAGA_AUDITOR,
GET_STAFF_NAME(GET_STAFFID_FILTER_LANDCOMMA(IM.INFO_MAGA_AUDITOR)) AS T_INFO_MAGA_AUDITOR,
(SELECT MT.IS_RECEIVE
FROM INFO_MAGAZINE_TURN MT
WHERE ROWNUM = 1) AS TURN_IS_READ,
(SELECT ES.IS_SIGNOFF
FROM INFO_EDIT_SIGNOFF ES
WHERE ROWNUM = 1) AS T_IS_SIGNOFF,
IM.INFO_MAGA_STATE
FROM INFO_MAGAZINE IM) M
WHERE 1 = 1
AND MAGA_TYPE = '0'
AND INFO_MAGA_STATE = 4
AND M.T_INFO_MAGA_CREATE_TIME > TO_DATE('2013-02-01', 'YYYY-MM-DD') --------这句报错
ORDER BY M.INFO_MAGA_CREATE_TIME DESC

参考技术A 你自己写错了,
TO_CHAR(IM.INFO_MAGA_CREATE_TIME, 'YYYY-MM-DD') AS T_INFO_MAGA_CREATE_TIME,

TO_DATE('2013-02-01', 'YYYY-MM-DD')

他们怎么恩那个对比呢?一个CHAR.一个DATE
要不你转换上面的TO_CHAR为TO_DATE
要不你转换下面的TO_DATE为 TO_CHAR

你的SQL 真。。。。乱本回答被提问者采纳

Oracle 查询 ORA-01722

ORA-01722 : 无效数字。

一般来说,是由于试图将字符串转换为数字的时候失败,具体的原因在于字符串中可能含有不是数字的字符。

出现这种问题的两种可能原因:

1)执行的sql语句中包含显示或者隐式的类型转换,将字符串转换到数字类型的时候失败,字符内容包含非数字字符。解决方法:检查SQL语句是否包含对字段类型的转换。

2)将一个字符(varchar2)字段绑定(DefineByPos)到数字(number)类型,从而在取结果时,转换失败。解决方法:检查绑定变量和对应的字段是否顺序对应,数据类型对应。

 

以上是关于查询 SQL语句的时候 出现oracle ora 01861 文字与字符串格式不匹配 百思不得其解!的主要内容,如果未能解决你的问题,请参考以下文章

Oracle查询提示 ORA-00933: SQL command not properly ended 原因排查

Oracle 数据库中执行SQL语句 出现 [Err] ORA-00936: 缺失表达式! 但在SQL server 中可以使用 大家帮帮忙

SHELL中执行Oracle SQL语句查询性能视图

ORACLE 两个order by的SQL使用 UNION 或者 UNION ALL 报错 ORA-00933:sql命令未正确结束

Oracle.DataAccess.Client.OracleException: ORA-00900: 无效的 SQL 语句

oracle 表删除出错 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01426: 数字溢出