2016-03-27 29 views
-1

böyle tarihe göre sıralamak için çalışıyorum ama bir hata alıyorum:SQLLite sipariş

String selectQuery = "SELECT * FROM " + TABLE + 
    "WHERE calendar < '2016-1-00' + ORDER BY calendar ASC"; 

(1) yakın "<": sözdizimi hatası

Ben neyim yanlış

+1

SİPARİŞTE önce + mantıklı görünmüyor. –

+1

WHERE – unicorn2

+0

önce bir alana ihtiyacınız var Sorguda "WHERE" önce beyaz boşluk eksik. Ayrıca, hangi takvim türü "takvim" sütunu - "DATE" veya "VARCHAR"? –

cevap

1
String selectQuery = "SELECT * FROM " + TABLE_ASSIGNMENTS + 
    " WHERE calendar < '2016-1-00' ORDER BY calendar ASC"; 

Bu çalışma yanıtıdır. Yardım edenlere teşekkür ederim!

1

İki yazım hataları vardır:

1) ekleyin ve TABLO birleştirme

2 sonra fazladan boşluk) tarihinden sonra bulunduğu "+" sembolü kaldır

Kodunuz görünmelidir gibi bir şu:

String selectQuery = "SELECT * FROM " + TABLE + " WHERE calendar < '2016-1-00' ORDER BY calendar ASC"; 

önemli bir nokta: Eğer sa zorunda SQLite, "tarih" veya "datetime" türleri yok ve bir unix zaman damgası veya semboller olmadan ters notasyon tarihi (yyyymmdd) kullanarak tamsayı (int) olarak tarihler.

Yalnızca 8 bayt ve SQLite siparişi gerektirdiği ve arama işlemlerinin daha hızlı gerçekleştirileceği için ters gösterim tarihini kullanmanızı öneririm. Değerin 10'dan küçük olduğu durumlarda, ters notasyonun sol yazım sıfırlama değerini kullanması gerektiğini unutmayın, bu nedenle 20160301 (01 Mart 2016), 201631 olarak gösterilmemelidir.