ORA-01861: değişmez biçim dizesiyle eşleşmiyor

Bu parçacığı çalıştırmaya çalıştığımda:

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";

Anladım:

ORA-01861: literal does not match format string

Veritabanı bağlantısı ile ilgili bir sorun yok çünkü temel SQL komutlarını çalıştırabiliyorum.

Bu ifadeyle ilgili sorun nedir?

WHERE cümlesindeki TO_DATE ifadesini kaldırın

TO_DATE (alarm_datetime,'DD.MM.YYYY HH24:MI:SS')

ve kodu şu şekilde değiştirin

alarm_datetime

Hata, bir tarih sütununun to_date dönüşümünden kaynaklanır.

Eklenen Açıklama: Oracle, alarm_datetime öğenizi nls'ye bağlı tarih biçimini kullanarak bir dizeye dönüştürür. Bundan sonra, sağladığınız tarih maskesi ile to_date'i çağırır. Bu istisnayı atar.

Yorumlar (0)

Bu hata, bir biçim dizesiyle birlikte bir değişmez girmeye çalıştığınız, ancak biçim dizesinin uzunluğunun değişmezle aynı uzunlukta olmadığı anlamına gelir.

Bu formatlardan biri yanlıştır:

TO_CHAR(t.alarm_datetime, 'YYYY-MM-DD HH24:MI:SS')
TO_DATE(alarm_datetime, 'DD.MM.YYYY HH24:MI:SS')
Yorumlar (1)
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 
Yorumlar (0)