当我尝试执行此代码段时:
cmd.CommandText = "SELECT alarm_id,definition_description,element_id,
TO_CHAR (alarm_datetime, 'YYYY-MM-DD HH24:MI:SS'),severity,
problem_text,status FROM aircom.alarms
WHERE status = 1 and
TO_DATE (alarm_datetime,'DD.MM.YYYY HH24:MI:SS') > TO_DATE ('07.09.2008
09:43:00', 'DD.MM.YYYY HH24:MI:SS')
order
by ALARM_DATETIME desc";我得到了:
ORA-01861: literal does not match format string数据库连接没有问题,因为我可以执行基本的SQL命令。
这句话有什么问题?
发布于 2009-09-07 07:09:40
删除WHERE子句中的TO_DATE
TO_DATE (alarm_datetime,'DD.MM.YYYY HH24:MI:SS')并将代码更改为
alarm_datetime该错误来自日期列的to_date转换。
添加了解释: Oracle使用它的alarm_datetime依赖日期格式将您的nls转换为字符串。在此之后,它使用您提供的日期掩码调用to_date。这会抛出异常。
发布于 2009-09-07 07:11:42
该错误表示您试图输入带有格式字符串的文字,但格式字符串的长度与文字的长度不同。
以下格式之一不正确:
TO_CHAR(t.alarm_datetime, 'YYYY-MM-DD HH24:MI:SS')
TO_DATE(alarm_datetime, 'DD.MM.YYYY HH24:MI:SS')发布于 2012-06-04 14:48:32
SELECT alarm_id
,definition_description
,element_id
,TO_CHAR (alarm_datetime, 'YYYY-MM-DD HH24:MI:SS')
,severity
, problem_text
,status
FROM aircom.alarms
WHERE status = 1
AND TO_char (alarm_datetime,'DD.MM.YYYY HH24:MI:SS') > TO_DATE ('07.09.2008 09:43:00', 'DD.MM.YYYY HH24:MI:SS')
ORDER BY ALARM_DATETIME DESC https://stackoverflow.com/questions/1387917
复制相似问题