Sqlite veritabanınımda OdemeTarihi (veri tipi DATE) adlı alanım var. Veritabanındaki veri 05.06.2023 şeklinde kayıtlı. Ben iki tarih arasındaki verileri çekmek istiyorum ama aşağıdaki kod veri çekmiyor. Between özelliği ile de denedim ama bir türlü veri çekemedim. Bugünkü tarih ile 10 gün sonraki tarihler arasındaki verileri çekmek istiyorum.
def tarih_veri(self):
tarih = datetime.now()
tarih2 = tarih + timedelta(days=10)
text = “Select * from borc where OdemeTarihi>=” + “’” + str(tarih) + “’ and OdemeTarihi<=” + “’” + str(tarih2) + “’”
data = helper.select(text)
tarih formatının doğru olup olmadığını kontrol edebilirsin.
text içerisindeki değeri DB Browser ile kontrol etmeyi dene eğer düzgün gelmiyorsa. strftime() fonksiyonunu kullanarak düzenleme yapmayı deneyebilirsin.
t = str(tarih)[8:10] + “.” + str(tarih)[5:7] + “.” + str(tarih)[:4]
Yukarıdaki şekilde formatı gg.aa.yyyy a çevirdim. Oldu. Ne kadar sağlıklı bilemiyorum ama
tarih = datetime.now() t = str(tarih)[8:10] + “.” + str(tarih)[5:7] + “.” + str(tarih)[:4]
tarih2 = tarih + timedelta(days=10) t2 = str(tarih2)[8:10] + “.” + str(tarih2)[5:7] + “.” + str(tarih2)[:4]
text = “Select * from borc where OdemeDurumu=‘Ödenecek’ and OdemeTarihi>=” + “’” + t + “’” + " and OdemeTarihi<=" + “’” + t2 + “’”
lütfen ilk mesajda verdiğim strftime linkini inceleyiniz.
ek olarak şuna da bakabilirisiniz: strftime.org
ayrıca fstring konusunu da incelemeniz faydanıza olacaktır.
iyi günler
Yalnız days değerini 20 yaptığımda veriyi çekmiyor. Diğer aya geçince. Örneğin
11.06.2023 ile 01.07.2023 olunca veriyi çekmiyor. 11.06.2023 ile 21.06.2023 ü çekiyor. Veritabanında OdemeTarihi DATE veri tipinde. Kayıt şekli şu şekilde : 14.06.2023