17-05-2023, Saat: 16:08
Veri tabanındaki TARIH alanının tipi nedir? datetime olması gerekiyor.
|
İki Tarih Arası Sorgulama
|
|
17-05-2023, Saat: 16:08
Veri tabanındaki TARIH alanının tipi nedir? datetime olması gerekiyor.
@Mikdad
Aşağıdaki kod örneğine göre yeniden düzenleyip bir çalıştırır mısınız ? Sorun ve ihtimalen eklenmesi gerekenler :
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
With FDISLEM do
begin
SQL.Clear;
SQL.Add('select * from ISLEM');
SQL.Add('WHERE TARIH BETWEEN :ilktarih and :sontarih');
ParamByName('ilktarih').DataType := ftDate;
ParamByName('ilktarih').Value := StrToDateTime( MaskEdit1.Text );
ParamByName('sontarih').DataType := ftDate;
ParamByName('sontarih').Value := StrToDateTime( MaskEdit2.Text );
Active := TRUE;
end;
//...
end;
Saygılarımla
Muharrem ARMAN ![]()
20-05-2023, Saat: 13:33
(15-05-2023, Saat: 16:59)Mikdad Adlı Kullanıcıdan Alıntı: Selamun aleykum Hocalarım, Aşağıdaki fonksiyonları kullanarak tarihinizi Access'in kabul edebileceği şekilde formatlayabilirsiniz.
function QuotedSQLDate(ADate: TDateTime): String;
begin
Result := 'CDATE(' + QuotedStr(FormatDateTime('yyyy-mm-dd', ADate)) + ')';
end;
function QuotedSQLDateTime(ADateTime: TDateTime): String;
begin
Result := 'CDATE(' + QuotedStr(FormatDateTime('yyyy-mm-dd hh:nn:ss', ADateTime)) + ')';
end;
22-05-2023, Saat: 09:29
Hocalarım Allah razı olsun, tüm verdiğiniz kodları denedim, maskeditler yerine Edit te kullandım, hep aynı hata,
access vt ISLEM tablosunda TARIH alanı tarih/saat seçili. alt taraftan özellik kısmında da kısa tarih olarak belirledim. ama hala aşağıdaki hatayı veriyor.
22-05-2023, Saat: 10:18
parametre kullanmak candır gerisi heyecandır derler.
Tarihi string olarak kullanınca ayraç ne olacak hangi formatta olacak karmaşası yaşamanız doğal. Bir de parametre ile deneyin isterseniz.
Saygılarımla
Muharrem ARMAN ![]()
22-05-2023, Saat: 10:23
(22-05-2023, Saat: 09:29)Mikdad Adlı Kullanıcıdan Alıntı: Hocalarım Allah razı olsun, tüm verdiğiniz kodları denedim, maskeditler yerine Edit te kullandım, hep aynı hata, Benim cevabım işinize yaramadı mı? Denemekte veya anlamakta zorluk mu çektiniz?
SELECT * FROM TABLE1 WHERE TARIH1 >= CDATE('2023-01-31') AND TARIH1 <= CDATE('2023-02-28')
Delphi ile kodlarsak:
Query1.SQL.Text := 'SELECT * FROM TABLE1 WHERE TARIH1 >= CDATE(' + QuotedStr(FormatDateTime('yyyy-mm-dd hh:nn:ss', DateEdit1.Date)) + ') AND TARIH1 <= CDATE(' + QuotedStr(FormatDateTime('yyyy-mm-dd hh:nn:ss', DateEdit2.Date)) + ')'
22-05-2023, Saat: 11:24
(22-05-2023, Saat: 10:23)csunguray Adlı Kullanıcıdan Alıntı:(22-05-2023, Saat: 09:29)Mikdad Adlı Kullanıcıdan Alıntı: Hocalarım Allah razı olsun, tüm verdiğiniz kodları denedim, maskeditler yerine Edit te kullandım, hep aynı hata, hocam bu seferde hiç tepki vermiyor. tabloyu kapatıyor sorgulama yapmıyor. ben delpide yeniyim, çok fazla kod yazamıyorum. projeler üzerinden kendimi geliştiriyorum. bu projeyi de yaşlı ve engelli bireylerin ev temizliği yaptığımız haneler için kullanıyorum. iki tarih arası rapor isteniyor. aslında tam anlamı ile ihtiyaç duyduğum şey combobox1 den Temizlik Yapıldı veya Adreste Bulunamadı gibi bir seçim yapıp daha sonra iki tarih belirtip sorgulayıp fastreport tan çıktı almak. ama bir türlü yapamadım.
22-05-2023, Saat: 12:11
Ben bu şekilde kullanıyorum. SQL serverdaki tarih düzenine göre hata alıyor olabilirsin.
SIP_.SQL.Add('AND TARIH Between CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd', IncDay (TARIH1, -1) )+' 00:00:00'', 102) and CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd', TARIH2 )+' 23:59:59'', 102)');
23-05-2023, Saat: 00:26
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var ab,cd : STRING; begin ab := FormatDateTime ('yyyy mm dd', StrToDate(MaskEdit1.Text)); cd := FormatDateTime ('yyyy mm dd', StrToDate(MaskEdit2.Text)); ab := AnsiReplaceText(ab,' ','-'); cd := AnsiReplaceText(cd,' ','-'); FDISLEM.sql.Add('select * from ISLEM'); FDISLEM.sql.Add('WHERE TARIH >=:ilktarih and TARIH <=:sontarih'); FDISLEM.ParamByName('ilktarih').Value := ab+(' 00:00:00'); FDISLEM.parambyname('sontarih').Value := cd+(' 23:59:59'); FDISLEM.open; end; bu şekilde çalıştır
Destek Olan Tüm Hocalarımdan Allah Razı Olsun. Hakkınızı Helal Edin lütfen. Aşağıdaki kod ile sorunumu çözdüm. Başka bir dostumuzun ihtiyacı olur diye kodu yazıyorum.
Kod: (Select All) begin |
|
« Önceki Konu | Sonraki Konu »
|
| Konu ile Alakalı Benzer Konular | |||||
| Konular | Yazar | Yorumlar | Okunma | Son Yorum | |
| 2 Tarih arası periyodik tarih parçalama fonksiyonu | adelphiforumz | 4 | 940 |
17-02-2025, Saat: 17:33 Son Yorum: adelphiforumz |
|
| cxgrid sorgulama | ercanskose | 3 | 870 |
09-11-2024, Saat: 10:09 Son Yorum: ercanskose |
|
| Formlar Arası Geçiş | delphiX14 | 2 | 755 |
06-12-2023, Saat: 21:57 Son Yorum: delphiX14 |
|
| Tarih Guncelleme Trigger | OZCANK | 2 | 1.401 |
24-05-2023, Saat: 17:06 Son Yorum: OZCANK |
|
| WebBrowser ile Forma Veri Gönderme ve Sorgulama | adnansirca | 5 | 3.642 |
02-03-2023, Saat: 17:15 Son Yorum: adnansirca |
|