En iyi yanıtlayıcılar
Conversion failed when converting date and/or time from character string.' hatasını çözemiyorum

Soru
-
BU HATAYI VERİYOR NASIL ÇÖZEBİLİRİM. anatablodaki bugüne ait verileri çekmek istiyorum.
KODLAR DA BUNLAR
con.Open(); select_cmd.CommandText = "SELECT * FROM AnaTablo WHERE Tarih = '" + DateTime.Now.Day + "'"; select_cmd.Connection = con; dr = select_cmd.ExecuteReader(); while(dr.Read()) { OynamaSureleri_lstbx.Items.Add(dr.GetString(dr.GetOrdinal("Ad"))); }
Yanıtlar
-
Datatype alıyorsunuz. Sql server'in desteklediği formatlar için aşağıdaki linke bakın.
DateTime.Now.Day komutu ile integer bir değer aldığınızı (Gün) unutmayınız. Muhtemelen burayı gözden kaçırdınız. Tarih sütunun türü Date ise DateTime.Now olarak değiştirin.
con.Open(); select_cmd.CommandText = "SELECT * FROM AnaTablo WHERE Tarih = '" + DateTime.Now + "'"; select_cmd.Connection = con; dr = select_cmd.ExecuteReader(); while(dr.Read()) { OynamaSureleri_lstbx.Items.Add(dr.GetString(dr.GetOrdinal("Ad"))); }
Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz
- Düzenleyen Ferit Gezgil 29 Kasım 2020 Pazar 16:28
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 8 Aralık 2020 Salı 19:29
-
Tarih'in datatipi hata mesajina gore date\datetime. En sonda Day eklemenizin amaci nedir? O sadece gunu getirecek (1, 2, ..., 30, 31 gibi). Bugune ait veriler demissiniz, bugune ait verileri DateTime.Now ile cekemezsiniz. Onun yerine bir zaman araligi kullanmalisiniz. Bir de, bu sekilde yazarsaniz, er ya da gec hata alirsiniz ya da hatali veri alirsiniz. Onun yerine parametre kullaniniz:
con.Open(); using (SqlCommand cmd = new SqlCommand(@"SELECT * FROM AnaTablo WHERE Tarih => @baslangic and Tarih < @bitis", con)) { var baslangic = DateTime.Today; // bugun, geceyarisi var bitis = DateTime.Today.AddDays(1); // bu geceyarisina kadar cmd.Parameters.Add("@baslangic", SqlDbType.DateTime).Value = baslangic; cmd.Parameters.Add("@bitis", SqlDbType.DateTime).Value = bitis; var reader = cmd.ExecuteReader(); while(reader.Read()) { OynamaSureleri_lstbx.Items.Add((string)reader["Ad"]); } }
Blog
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.- Yanıt Olarak İşaretleyen Cihangir_Y 12 Aralık 2020 Cumartesi 10:01
Tüm Yanıtlar
-
Datatype alıyorsunuz. Sql server'in desteklediği formatlar için aşağıdaki linke bakın.
DateTime.Now.Day komutu ile integer bir değer aldığınızı (Gün) unutmayınız. Muhtemelen burayı gözden kaçırdınız. Tarih sütunun türü Date ise DateTime.Now olarak değiştirin.
con.Open(); select_cmd.CommandText = "SELECT * FROM AnaTablo WHERE Tarih = '" + DateTime.Now + "'"; select_cmd.Connection = con; dr = select_cmd.ExecuteReader(); while(dr.Read()) { OynamaSureleri_lstbx.Items.Add(dr.GetString(dr.GetOrdinal("Ad"))); }
Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz
- Düzenleyen Ferit Gezgil 29 Kasım 2020 Pazar 16:28
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 8 Aralık 2020 Salı 19:29
-
Tarih'in datatipi hata mesajina gore date\datetime. En sonda Day eklemenizin amaci nedir? O sadece gunu getirecek (1, 2, ..., 30, 31 gibi). Bugune ait veriler demissiniz, bugune ait verileri DateTime.Now ile cekemezsiniz. Onun yerine bir zaman araligi kullanmalisiniz. Bir de, bu sekilde yazarsaniz, er ya da gec hata alirsiniz ya da hatali veri alirsiniz. Onun yerine parametre kullaniniz:
con.Open(); using (SqlCommand cmd = new SqlCommand(@"SELECT * FROM AnaTablo WHERE Tarih => @baslangic and Tarih < @bitis", con)) { var baslangic = DateTime.Today; // bugun, geceyarisi var bitis = DateTime.Today.AddDays(1); // bu geceyarisina kadar cmd.Parameters.Add("@baslangic", SqlDbType.DateTime).Value = baslangic; cmd.Parameters.Add("@bitis", SqlDbType.DateTime).Value = bitis; var reader = cmd.ExecuteReader(); while(reader.Read()) { OynamaSureleri_lstbx.Items.Add((string)reader["Ad"]); } }
Blog
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.- Yanıt Olarak İşaretleyen Cihangir_Y 12 Aralık 2020 Cumartesi 10:01