AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi wie kann ich 2 datumpicker in eine sql abfrage einbauen ???
Thema durchsuchen
Ansicht
Themen-Optionen

wie kann ich 2 datumpicker in eine sql abfrage einbauen ???

Ein Thema von schniede · begonnen am 26. Sep 2003 · letzter Beitrag vom 26. Sep 2003
Antwort Antwort
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#1

wie kann ich 2 datumpicker in eine sql abfrage einbauen ???

  Alt 26. Sep 2003, 00:48
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
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen

  Alt 26. Sep 2003, 00:55
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:
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;
oder:

Delphi-Quellcode:
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;
Unterschied der 2. Variante: Du kannst den Querytext statisch zur Entwurfszeit in der TQuery-Komponente im Objektinspektor formulieren
und die Parameter dynamisch zur Laufzeit ersetzen.
Welche Variante Du benutzt hängt von Deinen Zielen ab...
Grüße
Tim Leuschner
  Mit Zitat antworten Zitat
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#3

Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen

  Alt 26. Sep 2003, 10:02
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 !!!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen

  Alt 26. Sep 2003, 10:22
Hai schniede,

für das Auswählen in einem Datumsbereich bietet sich die SQL Funktion BETWEEN an.

SELECT * FROM tabelle WHERE datum BETWEEN datum1 AND datum2 Bei dir dann:

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

SELECT * FROM tabelle WHERE DATEPART (mm,datum) = monat
Delphi-Quellcode:
begin
  whith query1.sql do
   begin
    clear;
    add('SELECT * FROM tabelle WHERE DATEPART (mm,datum) = ');
    add (IntToStr (combobox1.itemindex + 1));
  end;
  query1.open;
end;
Hier solltest Du aber auch das Jahr berücksichtigen!!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#5

Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen

  Alt 26. Sep 2003, 11:28
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... da wird die Wahl auch schon eng...

bis denne...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen

  Alt 26. Sep 2003, 11:46
Zitat von Tonic1024:
...
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.
....

Zitat von MS-SQL Hilfe:
...
BETWEEN liefert TRUE zurück, wenn der Wert von test_expression größer oder gleich dem Wert von begin_expression und kleiner oder gleich dem Wert von end_expression ist.
....
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#7

Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen

  Alt 26. Sep 2003, 11:54
Moin...

Okay... dann war das woanders... Aber es gibt dieses Phänomen

Danke für die Korrektur.

bis denne...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen

  Alt 26. Sep 2003, 12:00
Zitat von Tonic1024:
...Danke für die Korrektur.
...
Hai Tonic,

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).
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#9

Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen

  Alt 26. Sep 2003, 14:05
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.

Danke ,Danke, Danke !!!


P.S. ist das mit dem beetwin nun ok oder nicht???grübel.

mfg schniede
  Mit Zitat antworten Zitat
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#10

Re: wie kann ich 2 datumpicker in eine sql abfrage einbauen

  Alt 26. Sep 2003, 20:35
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!!!!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz