Sqlite iki tarih arasından veri çekme problemi

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 :slight_smile:

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 + “’”

data = helper.select(text)

şöyle kullanabilirsiniz

from datetime import datetime, timedelta
t0 = datetime.now().strftime("%d:%m:%Y")
t2 = (datetime.now() +  timedelta(days=10)).strftime("%d:%m:%Y")

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

strftime denemiştim ama ikinci tarihte problem olmuş demek ki. strftime daha kolaymış. Teşekkür ederim.

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

Sqlite dd.mm.YYYY formatını desteklemiyormuş. Ben de formatı YYYY-mm-dd olarak değiştirdim. Artık veri çekiyor.

1 Beğeni