Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Tarih Sorgulama
#1
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;
Cevapla
#2
(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)
Cevapla
#3
@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. 
Cevapla
#4
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
Cevapla
#5
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.
Cevapla
#6
(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
Cevapla
#7
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
Cevapla
#8
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)');
Cevapla
#9
(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
WWW
Cevapla
#10
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)');

Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Tarih Guncelleme Trigger OZCANK 2 677 24-05-2023, Saat: 17:06
Son Yorum: OZCANK
  İki Tarih Arası Sorgulama Mikdad 19 2.421 23-05-2023, Saat: 08:24
Son Yorum: Mikdad
  WebBrowser ile Forma Veri Gönderme ve Sorgulama adnansirca 5 2.443 02-03-2023, Saat: 17:15
Son Yorum: adnansirca
  son kayitdaki tarih bilgisini almak sadikacar60 11 2.291 16-01-2023, Saat: 19:04
Son Yorum: sadikacar60
  DbGrid içindeki tarih verisine 1 yıl eklemek neriamelih 2 774 25-12-2022, Saat: 17:54
Son Yorum: enigma



Konuyu Okuyanlar: 1 Ziyaretçi