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:to_date()` fonksiyonunu kullanarak dizeyi tarihe dönüştürmeniz gerekir
dizeyi tarihe dönüştürmek için To_Date() işlevini kullanmanız gerekir ! http://www.techonthenet.com/oracle/functions/to_date.php