Oracle SQL - DATE greater than deyimi

Başlıkta da belirtildiği gibi, veri kümelerimden hangilerinin SYSDATE'den 6 ay geçmiş olduğunu sorgu yoluyla kontrol etmenin bir yolunu bulmak istiyorum.

SELECT * FROM OrderArchive
WHERE OrderDate <= '31 Dec 2014';

Aşağıdakileri denedim ancak tarih formatımın yanlış olduğunu söyleyen bir hata döndürüyor. Ancak, verileri eklerken bu tarih biçimini istendiği/amaçlandığı gibi kullandım ve hiçbir sorun yaşamadım.

Komut Satırında Hata : 10 Sütun : 25

Blockquote

Hata raporu -

SQL Hatası: ORA-01861: literal biçim dizesiyle eşleşmiyor 01861. 00000 - "literal biçim dizesiyle eşleşmiyor"

*Neden: Girdideki değişmezler, girdideki değişmezlerle aynı uzunlukta olmalıdır. biçim dizesi (baştaki boşluklar hariç). Eğer "FX" değiştiricisi açılmışsa, değişmez tam olarak eşleşmelidir, fazladan boşluk olmadan.

*Eylem: Biçim dizesini değişmezle eşleşecek şekilde düzeltin.

Sorgu dizeniz bir değişmez olduğundan ve tarihlerinizin DATE olarak düzgün bir şekilde saklandığını varsayarak date literals kullanmalısınız:


SELECT * FROM OrderArchive
WHERE OrderDate 
Yorumlar (2)

to_date()` fonksiyonunu kullanarak dizeyi tarihe dönüştürmeniz gerekir


SELECT * FROM OrderArchive
WHERE OrderDate 
Yorumlar (0)

dizeyi tarihe dönüştürmek için To_Date() işlevini kullanmanız gerekir ! http://www.techonthenet.com/oracle/functions/to_date.php

Yorumlar (0)