2012-12-30 11 views
52

Benim SQLite veritabanındaki her kayıt, 'yyyy-MM-dd HH:mm:ss' biçiminde string olarak kaydedilen bir alan içeren bir Date içerir.Tarihine Göre SQLite Siparişi

En son tarihi içeren kaydı almak için veritabanını sorgulamak mümkün mü lütfen?

+6

Tarihi, milisaniyede saklamalı ve görüntülemek için her zaman dönüştürmelisiniz. Bu, daha sonra sıralama yaparken daha kolay hale getirecektir. – Andrei

cevap

113

ben datetime değil tarih sütunu olarak saklayarak beri benim problemi

select * from Table order by datetime(datetimeColumn) DESC LIMIT 1 

çözmek için benim sorgu vardı Benim için bu

SELECT * FROM Table ORDER BY date(dateColumn) DESC Limit 1 
+37

, tarihe göre sipariş vermek isterseniz ** ve time ** 'datetime()' 'date()' intead 'ini kullanmanız gerektiğini unutmayın. – eliocs

2

Sen unix zaman damgası dönüştürmek gerekir ve daha sonra bunları karşılaştırmak:

SELECT * FROM data ORDER BY strftime('%s', date_column) DESC 

Ama satır Lot yoksa bu oldukça yavaş olabilir. Daha iyi bir yaklaşım, unix zaman damgasını varsayılan olarak depolamak ve bu sütun için bir dizin oluşturmak olacaktır.

34

gibi bu şekilde bunu yapabilir

+3

Ayrıca, date() işlevi tarihi bu biçimde döndürür: YYYY-AA-GG. Time() işlevi, saati HH: MM: SS olarak döndürür. Datetime() işlevi "YYYY-AA-DD HH: MM: SS" değerini döndürür. – wangqi060934

+0

Cevabınız ile bir öncekinden daha ne fark ettiniz? @Ahmad Baraka –

+0

@GowthamSubramaniam date() yerine datetime() kullanarak – AnthoPak

1

"Sent_date_time" sütununu yyyy-AA-dd biçimine dönüştürebilir ve ardından tarihe kadar sipariş verebilirsiniz

1) substr(sent_date_time,7,4)||"-"||substr(sent_date_time,1,2)||"-"||substr(sent_date_time,4,2) as date 
2) order by date desc 
0

Emin metin alanının biçimi yyyy-MM-dd HH:mm:ss (ex .: 2017-01-02 16:02:55), So Bu sadece benim için çalışıyor:

SELECT * FROM Table ORDER BY dateColumn DESC Limit 1

herhangi bir ekstra tarih fonksiyonu olmadan! Davam her şey

0

'tarih' yazın sütun olmadan döküm çalışıyor. Aynen böyle çift tırnak sütun adını belirterek:

SELECT * FROM 'Repair' ORDER BY "Date" DESC; 

ben SQLite kendisi ya da onun gibi bir şey tarafından döküm yapar düşünüyorum, ama kendim için 'döküm' Tarih sütunu çalıştığımızda işe yaradı değil. Ve hiçbir hata mesajı yoktu.