![]() |
wie kann ich 2 datumpicker in eine sql abfrage einbauen ???
So in der art:
liste alle daten von datum.picker1 bis datum.picker2 auf. So klapt es mit einem Picker,warum frag ich mich selber :-)).Kann mit Like nichts anfangen habe es aus einem Buch. var date1,date2: string; begin date1:=datetostr(vonpicker.date); query1.sql.Clear; query1.sql.add(format('select * from langzeittabelle where Datum like "%s"',[date1])); query1.open; mfg schniede |
Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen
Also sag doch mal:
1. welche Datenbank 2. Welchen Typ haben Deine Datumswerte in der Datenbank? (sollte unbedingt ein Datumsformat sein!) wenn Feld Datum vom Typ dateTime oder date ist sollte es so gehen:
Delphi-Quellcode:
oder:
begin
query1.sql.clear; whith query1.sql do begin add('select * '); add(' from langzeittabelle'); add(' where datum >='+QuotedStr(DateToStr(trunc(vonpicker.datetime)))); // Parameter "hart" in die Query geschrieben add(' and datum <='QuotedStr(DateToStr(trunc(bispicker.datetime)))); end; query1.open; end;
Delphi-Quellcode:
Unterschied der 2. Variante: Du kannst den Querytext statisch zur Entwurfszeit in der TQuery-Komponente im Objektinspektor formulieren
begin
query1.sql.clear; whith query1.sql do begin add('select * '); add(' from langzeittabelle'); add(' where datum >=:Von '); // Parameter1 "Von" erzeugt add(' and datum <=:Bis '); // Parameter1 "Bis" erzeugt end; query1.prepare; query1.ParamByName('Von').AsDateTime := trunc(vonpicker.datetime); query1.ParamByName('Bis').AsDateTime := trunc(bispicker.datetime); query1.open; end; und die Parameter dynamisch zur Laufzeit ersetzen. Welche Variante Du benutzt hängt von Deinen Zielen ab... Grüße |
Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen
Danke für die schnelle Antwort.
1. Paradox Tabelle 2.Feldtyp in der Tabelle ist date. Ist mein erster Versuch mit query ,deshalb alles ein bischen bömische dörfer :-). Werd es mal mit der 1. Variante probieren. Noch mal zum Sinn:möchte mir daten von bestimmten zeiträumen anzeigen lassen(wähle ich vorher aus per radiogroup [tag , von - bis ,oder monat]) , und mit diesen daten bestimmte Berechnungen durchführen. vieleicht kannst du mir noch mal schreiben wie ich es anstelle daten von Monat xyz zeigen zu lassen welchen ich vorher mit einer combobox auswähle und per index den monat anzeigen lasse. also index:=0 entspricht januar; Danke !!! |
Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen
Hai schniede,
für das Auswählen in einem Datumsbereich bietet sich die SQL Funktion BETWEEN an.
SQL-Code:
Bei dir dann:
SELECT * FROM tabelle WHERE datum BETWEEN datum1 AND datum2
Delphi-Quellcode:
begin
whith query1.sql do begin clear; add('SELECT * FROM tabelle WHERE datum BETWEEN'); add(QuotedStr(DateToStr(trunc(vonpicker.datetime)))); add('AND 'QuotedStr(DateToStr(trunc(bispicker.datetime)))); end; query1.open; end; Für das Filtern nach Monat gibt es die SQL-Funktion DATEPART
SQL-Code:
SELECT * FROM tabelle WHERE DATEPART (mm,datum) = monat
Delphi-Quellcode:
Hier solltest Du aber auch das Jahr berücksichtigen!!
begin
whith query1.sql do begin clear; add('SELECT * FROM tabelle WHERE DATEPART (mm,datum) = '); add (IntToStr (combobox1.itemindex + 1)); end; query1.open; end; |
Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen
Moin...
Mit dem Between währe ich vorsichtig. Kommt ganz darauf an ob der wert in "datum1" und "datum2" auch mit erfasst werden soll... Ich glaube nämlich die sind dann nicht dabei...Ich würde "< and >" nehmen. Frei nach dem Motto: Nenne mir einen Integer-Wert zwischen 12 und 13... :shock: da wird die Wahl auch schon eng... :-D bis denne... |
Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen
Zitat:
Zitat:
|
Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen
Moin...
Okay... dann war das woanders... :) Aber es gibt dieses Phänomen :warn: Danke für die Korrektur. :love: bis denne... |
Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen
Zitat:
sollte ja keine Korrektur sein sondern ein Hinweiss. Es ist aber richtig das Du darauf hingewiesen hast. Es kann ja auch sein das PARADOX oder andere DB-Systeme es anders machen (obwohl das nicht sein sollte). |
Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen
Hy
Ich danke euch allen,auch wenn ich nicht alles versteh was ihr so schreibt. sag euch auf alle Fälle bescheid,werd es schon irgendwie gebacken kriegen. :roll: Danke ,Danke, Danke !!! P.S. ist das mit dem beetwin nun ok oder nicht???grübel. mfg schniede |
Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen
Hallo sharky!!
Sieht gut aus nur funzt es leider nicht. with query1.sql do begin clear; add('SELECT * FROM langzeittabelle WHERE DATEPART (mm,datum) = '); add (IntToStr (monatsbox.itemindex + 1)); end; query1.open; Ein bde exeption meldet mir "Merkmal nicht verfügbar",was auch immer das heißen soll?? Kannst du vieleicht noch mal schauen was da falsch sein könnte und das Jahr auch noch mit implementieren. das von -bis problem hab ich in den griff bekommen. So funzt es. with query1.sql do begin clear; add('SELECT * FROM langzeittabelle WHERE DATEPART (mm,datum) = '); add (IntToStr (monatsbox.itemindex + 1)); end; query1.open; mfg schniede ,Ihr habt mir echt schon toll geholfen!!!!! :lol: :lol: :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz