Yorumları: 359
Konuları: 59
Kayıt Tarihi: 16-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 111 Başlangıç
Arkadaşlar Merhaba ;
Programda DateTimePicker1 ve DateTimePicker2 var ve normal tarih aralığı giriyoruz "01-02-2019 / 01-02-2019" sonuç sıfır dönüyor SQL de baktığımda bu tarihli kayıtlar var sebebi ne olabilir ? Yardımcı olabilir misiniz?
EFaturaRapor.SQL.Add('WHERE KAYITTARIHI BETWEEN :ILKEFATTARIH AND :SONEFATTARIH');
EFaturaRapor.Parameters.ParamByName('ILKEFATTARIH').Value := DateTimePicker1.Date;
EFaturaRapor.Parameters.ParamByName('SONEFATTARIH').Value := DateTimePicker2.Date;
Yorumları: 490
Konuları: 83
Kayıt Tarihi: 28-12-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.064 Programcı
(02-04-2019, Saat: 05:33)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba ;
Programda DateTimePicker1 ve DateTimePicker2 var ve normal tarih aralığı giriyoruz "01-02-2019 / 01-02-2019" sonuç sıfır dönüyor SQL de baktığımda bu tarihli kayıtlar var sebebi ne olabilir ? Yardımcı olabilir misiniz?
EFaturaRapor.SQL.Add('WHERE KAYITTARIHI BETWEEN :ILKEFATTARIH AND :SONEFATTARIH');
EFaturaRapor.Parameters.ParamByName('ILKEFATTARIH').Value := DateTimePicker1.Date;
EFaturaRapor.Parameters.ParamByName('SONEFATTARIH').Value := DateTimePicker2.Date;
sql tarafında baktığın tarih formatı ile datetimepicker tarih formatı aynı mı ?
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Yorumları: 820
Konuları: 135
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.030 Uzman
02-04-2019, Saat: 09:40
(Son Düzenleme: 02-04-2019, Saat: 15:41, Düzenleyen: adelphiforumz.)
@ OZCANK Aşağıdaki yapıyı bir denermisin
bu yapıda programın hata verecekmi yoksa çalışacakmı çünkü 2 satırda yazdığım sadece veri tipleri dönüşümü yapılabiliyormu diye yazdım.
EFaturaRapor.SQL.Add('WHERE DateAdd(dd, 0, DateDiff(dd, 0, KAYITTARIHI)) BETWEEN :ILKEFATTARIH AND :SONEFATTARIH');
EFaturaRapor.Parameters.ParamByName('ILKEFATTARIH').Value := StrToDate(DateTimeToStr(DateTimePicker1.Date));
EFaturaRapor.Parameters.ParamByName('SONEFATTARIH').Value := StrToDate(DateTimeToStr(DateTimePicker2.Date));
Eğer üstteki çalışıyorsa muhtemelen veritabanından gelen tarih kısmı datetime şeklinde ozaman aşağıdaki şekilde kullanabilirsin
EFaturaRapor.SQL.Add('WHERE DateAdd(dd, 0, DateDiff(dd, 0, KAYITTARIHI)) BETWEEN :ILKEFATTARIH AND :SONEFATTARIH');
EFaturaRapor.Parameters.ParamByName('ILKEFATTARIH').Value := DateTimePicker1.Date;
EFaturaRapor.Parameters.ParamByName('SONEFATTARIH').Value := DateTimePicker2.Date
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.
Yorumları: 283
Konuları: 1
Kayıt Tarihi: 13-03-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.1
- Delphi XE7
- Delphi 7
Rep Puanı: 964 Acemi
02-04-2019, Saat: 09:40
(Son Düzenleme: 02-04-2019, Saat: 09:59, Düzenleyen: meko.)
Merhaba,
database tarafındaki kayıtlarda saat bilgisi de kayıtlı ise gelmeme sebebi olabilir.
01.02.2019 00:00:01
01-02-2019/01-02-2019 aralığı dışında olur.
çünkü 01-02-2019 00:00:00 olarak düşünülür.
tarihi 01-02-2019/02-02-2019 olarak dener misiniz
Yorumları: 673
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.545 Programcı
Selamlar
ben bir butona yazdım kodu. Sen kendine göre düzenleyebilirsin.
procedure Tfrmmain.sBitBtn5Click(Sender: TObject);
var tarih1, tarih2: string;
begin
tarih1 :=copy(datetostr(DateTimePicker1.Date),7,4) + '-' + copy(datetostr(DateTimePicker1.Date),4,2) + '-' + copy(datetostr(DateTimePicker1.Date),1,2);
tarih2 :=copy(datetostr(DateTimePicker2.Date),7,4) + '-' + copy(datetostr(DateTimePicker2.Date),4,2) + '-' + copy(datetostr(DateTimePicker2.Date),1,2);
qryveri.SQL.Text :='select * from tagverileri where (tarih between'''+tarih1+''' and '''+tarih2+''')';
qryveri.Open;
end;
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Yorumları: 359
Konuları: 59
Kayıt Tarihi: 16-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 111 Başlangıç
(02-04-2019, Saat: 09:40)Merhaba ; Öncelikle teşekkür ederim. Kodlarını denedim. Şöyle bir hata verdi ;"EConvertError with message \24.03.2019 09:15:11' is not a valid date" adelphiforumz Adlı Kullanıcıdan Alıntı: @OZCANK Aşağıdaki yapıyı bir denermisin
bu yapıda programın hata verecekmi yoksa çalışacakmı çünkü 2 satırda yazdığım sadece veri tipleri dönüşümü yapılabiliyormu diye yazdım.
//Hata burda veriyor
EFaturaRapor.SQL.Add('WHERE DateAdd(dd, 0, DateDiff(dd, 0, KAYITTARIHI)) BETWEEN :ILKEFATTARIH AND :SONEFATTARIH');
EFaturaRapor.Parameters.ParamByName('ILKEFATTARIH').Value := StrToDate(DateTimeToStr(DateTimePicker1.Date));
EFaturaRapor.Parameters.ParamByName('SONEFATTARIH').Value := StrToDate(DateTimeToStr(DateTimePicker2.Date));
Eğer üstteki çalışıyorsa muhtemelen veritabanından gelen tarih kısmı datetime şeklinde ozaman aşağıdaki şekilde kullanabilirsin
//Hata vermiyor fakat sonuçu sıfır dönüyor.
EFaturaRapor.SQL.Add('WHERE DateAdd(dd, 0, DateDiff(dd, 0, KAYITTARIHI)) BETWEEN :ILKEFATTARIH AND :SONEFATTARIH');
EFaturaRapor.Parameters.ParamByName('ILKEFATTARIH').Value := DateTimePicker1.Date;
EFaturaRapor.Parameters.ParamByName('SONEFATTARIH').Value := DateTimePicker2.Date
Yorumları: 283
Konuları: 1
Kayıt Tarihi: 13-03-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.1
- Delphi XE7
- Delphi 7
Rep Puanı: 964 Acemi
Merhaba,
EFaturaRapor.Parameters.ParamByName('ILKEFATTARIH').Value := DateTimePicker1.Date+EncodeTime(0,0,0,0);
EFaturaRapor.Parameters.ParamByName('SONEFATTARIH').Value := DateTimePicker2.Date+EncodeTime(23,59,59,999);
olarak dener misin
Yorumları: 166
Konuları: 32
Kayıt Tarihi: 08-05-2017
Rep Puanı: 434 Acemi
Ben MSSQL de şu şekilde kullanıyorum,
FIS_.SQL.Add('WHERE TARIH Between CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd',TAR1.Date)+' 00:00:00'', 102) and CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd',TAR2.Date)+' 23:59:59'', 102)');
Yorumları: 297
Konuları: 34
Kayıt Tarihi: 28-03-2017
Rep Puanı: 2.072 Programcı
(04-04-2019, Saat: 12:43)m_ekici Adlı Kullanıcıdan Alıntı: Ben MSSQL de şu şekilde kullanıyorum,
FIS_.SQL.Add('WHERE TARIH Between CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd',TAR1.Date)+' 00:00:00'', 102) and CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd',TAR2.Date)+' 23:59:59'', 102)');
SQL Server'de güvenli tarih formatı:
http://www.delphican.com/showthread.php?...50#pid5750
Yorumları: 359
Konuları: 59
Kayıt Tarihi: 16-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 111 Başlangıç
Arkadaşlar ; Yardımlarınız için Emeğinize yüreğinize sağlık, Allah Razı olsun hepinize teşekkür ediyorum.
Sorunun cevabına gelince şu şekilde kod gönderen m_ekici ve csunguray arkadaşımızın yazdığını kullandım ve sorun çözüldü.
EFaturaRapor.SQL.Add('WHERE KAYITTARIHI BETWEEN CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd',DateTimePicker1.Date)+' 00:00:00'', 102) and CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd',DateTimePicker2.Date)+' 23:59:59'', 102)');
|