ORA-01861: literal tidak cocok dengan string format

Ketika saya mencoba mengeksekusi cuplikan ini:

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

Saya mendapatkan:

ORA-01861: literal does not match format string

Tidak ada masalah dengan koneksi database karena saya dapat menjalankan perintah SQL dasar.

Apa masalahnya dengan pernyataan ini?

Hapus TO_DATE dalam klausa WHERE

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

dan ubah kodenya menjadi

alarm_datetime

Kesalahan berasal dari konversi to_date dari kolom tanggal.

Penjelasan Tambahan: Oracle mengubah alarm_datetime Anda menjadi string menggunakan format tanggal yang bergantung pada nls. Setelah itu, Oracle memanggil to_date dengan mask tanggal yang Anda berikan. Ini melempar pengecualian.

Komentar (0)

Error berarti Anda mencoba memasukkan literal dengan string format, tetapi panjang string format tidak sama panjangnya dengan literal.

Salah satu format ini salah:

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