Veritabanından çekilen veriyi float veya inte dönüştüremiyorum

sql=im.execute("""SELECT tarih FROM sonkontrol""")
        start=sql.fetchone()
        my_str_1=''.join(''.join(tup_) for tup_ in start)
        ilk_kayit=my_str_1.replace("-",".")
        #ilk=float(ilk_kayit)




        print("ilk kayıt: ",ilk_kayit)



        sql_1=im.execute("""SELECT tarih FROM RandevuKayit DESC LIMIT 1""")

        sql1_=sql_1.fetchall()
        my_str=''.join(''.join(tup) for tup in sql1_)
        son=my_str.replace("-",".")
        son_kayit=float(son)

        print("son kayit: ",son_kayit)


        #for i in my_str:
         #   print("ikinci kayıt: ",i)


        l_date = QDate(2022,7,5)
        u_date = QDate(2022,6, 5)
        print(type(l_date))



        self.calendar_kontrol.setDateRange(ilk_kayit,son_kayit)

Hata şu şekilde
ValueError: could not convert string to float: ‘2022.06.29’

Nerde hata var? sadece amacım bunu floata çevirmek

Çevirdiğim float değerini centralwidget üzerine yayıp tıklanamaz yapacağım o da ayrı bir sorun

yardımcı olur musunuz değerli arkadaşlar. Yok yapamadım

'2022.06.29' değerini hangi float değerine çevirmeye çalışıyorsunuz?

1 Beğeni

Tarih sütununu float değere dönüştürmeye çalışıyorsunuz. Dönüştürmemesi normal.

Yanlış bir işlem mi arkadaşlar

Hata diyor ki, metin şeklindeki veri, ondalıklı sayıya dönüştürülemiyor.

Diyorlar…

Yanlış bir işlem mi diyorsun…

Bravo doğru.

Biz ondalıklı sayıları ara sıra canımız sıkıldıkça arasına virgül veya nokta eklenen sayılar olarak tanımlıyoruz.

1,5
1,5,9

1,7777,999,888 gibi şeyler ondalık lı sayı mı oluyor?

Hangi virgülü ondalık olarak kabul ediyorsun?

Hani olmaz ya insanın sorası geliyor.

Tarih verisinin ondalıklı halini ne yapmak istersin?

Bana ondalıklı bir tarih yazar mısın?

2 Beğeni

Tarih sütununu sadece ekrana yazdırmak için float tipine çevirmeye çalışıyorsanız buna gerek yok. Direkt yazdırıyor olması lazım.

Bunu yanitlayabilmemiz icin

bunu yanitlaman lazim.

hmm. Baya sinirlenmişsiniz diğer bir konuda da benim bahsim geçmiş. Olsun yine birşey demiyorum. Yeniyim sonuçta kendi başıma bir şeyler yapmaya çalışıyorum.

Bilginize hayran kaldım. Fakat bir yerlerde tıkanıyorum,yardımınızı talep ediyorum.
1.)Calendarwidget’e ait setDateRange fonksiyonunun içine “float” değer atamam gerekiyor. Başlangıç ve bitiş. Başlangıç’tan bitişe kadar olan sayıları boyayacak hocam. Fakat bu fonksiyonun içine yalnızca “float” değer atamam gerekiyor. Aksi halde kabul etmiyır

Veritabanıma tarih sütununu “str” olarak kaydettim. Veriyi çekerken otomatikmen string veri tipiyle çekiyorum. Type özelliğine baktığımda “str” yazıyor. Kodda da gördüğünüz üzere başlangıç ve bitiş değerlerini alıyorum. ikiside string veri tipinde. Bu verileri setDateRange fonksiyonuna aktardığımda

TypeError: setDateRange(self, Union[QDate, datetime.date], Union[QDate, datetime.date]): argument 1 has unexpected type 'str'

şöyle bir hata alıyorum.

2.) Alınan randevuları boyama için hangi özelliği önerirsiniz? veya tıklanamaz özelliği için nasıl bir şey yapmam gerekir?

Neden sinirlendiğimi uzunca başka bir zaman yazarım. Belki hak verirsiniz.

Öncelikle ilk yapacağım iş şu olurdu. Bir dil öğreniyorsam, keywords(anahtar kelimeler) ve veri tiplerini öğrenirdim.

Bunun için herhangi bir dil referansına bakmanız yeterli.

Bunu yaparsanız, hatayı neden aldığınızı kolayca çözersiniz.

Ben olsam google da string split aratır. Tarihi, gün ay yıl olarak bölmeyi öğrenirdim.

Böylece gün verisi, ay verisi ve yıl verisi ayrı değişkenlerde olurdu.

Bunları da kolaylıkla float a dönüştürebilirdim…

Google a python widget calendar more than one yazar

python - Highlight date interval in a Qt5 Calendar Widget - Stack Overflow

Gibi bir linke göz atardım.

Ama ben olsam…

Tabi bu programlamı öğrenmek isteyen birinin istediği şeyler olurdu…

Bölmek için mesela,

python split string yazar:

Python String split() Method (w3schools.com)

Okurdum…

Şurada yazdıklarımın zor tarafı var mı?

Burada adamlar cevap vereyim diye iğne ile kuyu kazıyorlar.

İlk seferinde soruyu şöyle sorardım…

Elimde bir string içinde tarih verisi var.

Bunu takvimde işaretleme için kullanacağım…

takvim float değer istiyor, tarihi nasıl bölerim?

Anında cevap alırdınız…

Edit:

How To Use Calendar Widget To Select A Date Range | PyQt5 Tutorial - YouTube

Video da vereyim buradan çoklu seçim nasıl yapılır bakarsınız.

Ve hatta belki takvime not da düşmek istersiniz, bir randevuyu hatırlatacak…

PyQt5 QCalendarWidget - Setting Text to the selected date - GeeksforGeeks

sn @aib, kusura bakmayın güzel güzel izah ediyordunuz. Araya girmek istemezdim. Davet üzerine geldim. Sizde de peygamber sabrı varmış. Helal olsun.

Devam edeyim mi?

Split için;

Python String split() Method (w3schools.com)

Buradaki örnekten şu kodu yazalım

txt = "20/06/2022"
x = txt.split("/")
print (x)

Kodu okudum, uyarladım, bu günün tarihini böldüm.

Artık 20, 06, 2022 olmak üzere üçe bölündü her birini alıp sayıya dönüştürebilirsin.

x[0]
x[1]
x[2]

sırasıyla bu değerleri döndürür.

Artık her birini teker teker istediğiniz gibi float yada integer e dönüştürebilirsiniz.

Bu kadar basit.

Bir linke baktım. Örneği inceledim.

Ve kodumu yazdım.

Siz de deneyin çok kolay.

teşekkür ederim ilginiz için ve emekleriniz için