AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Befehl Datum zwischen x und x funktioniert nicht richtig
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Befehl Datum zwischen x und x funktioniert nicht richtig

Ein Thema von X21Carsten · begonnen am 24. Feb 2004 · letzter Beitrag vom 18. Mär 2004
Antwort Antwort
X21Carsten

Registriert seit: 15. Feb 2004
Ort: Zwickau
27 Beiträge
 
#1

SQL Befehl Datum zwischen x und x funktioniert nicht richtig

  Alt 24. Feb 2004, 18:12
Hallo,

ich greife über Delphi mit einem ADODATASET auf eine Access Datenbank zu.

Leider funktioniert der Befehl nicht

Das Datum wird auf das in Access übliche Format angepasst:
Delphi-Quellcode:
Datum_von:='#'+datetostr(DTP_Wiedervorlagen_von.Date)+'#';
Datum_von:=stringreplace(Datum_Von,'.','/', [rfReplaceAll]);
Datum_bis:='#'+datetostr(DTP_Wiedervorlagen_bis.Date)+'#';
Datum_bis:=stringreplace(Datum_bis,'.','/', [rfReplaceAll]);

Befehl in Delphi:
DSet_Wiedervorlage.CommandText:='SELECT * FROM Wiedervorlage WHERE Datum Between '+Datum_von+' And '+Datum_bis+' and VBNummer='+inttostr(VBNummer)+' order by Datum';

Befehl zur Laufzeit:
SELECT * FROM Wiedervorlage WHERE Datum Between #03/02/2004# And #16/03/2004# and VBNummer=62826106 order by Datum
Nun zum Fehler wenn ich das Datum ändere das heist Datum z.B.: vom 20.02.2004 bis 16.03.2004
dann kommen drei Datensätze. Wenn ich aber Datum vom 03.02.2004 bis 16.03.2004 kommt kein Datensatz, obwohl eigentlich 3 stück kommen müssten.

Also nach meiner Ansicht vertauscht der Tag + Monat... Kann das an der DateTimePickler Datumskomponente liegen?

Woran kann das liegen???
  Mit Zitat antworten Zitat
Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#2

Re: SQL Befehl Datum zwischen x und x funktioniert nicht ric

  Alt 24. Feb 2004, 22:56
Warum so umständlich ? Wie wärs hiermit:

Delphi-Quellcode:
Datum_von := FormatDateTime('#yyyy/mm/dd#',DTP_Wiedervorlagen_von.Date);
Datum_bis := FormatDateTime('#yyyy/mm/dd#',DTP_Wiedervorlagen_bis.Date);
Gruß,
Marcel
Marcel Gascoyne
  Mit Zitat antworten Zitat
24. Feb 2004, 23:12
Dieses Thema wurde von "Daniel" von "Sonstige Fragen zu Delphi" nach "Datenbanken" verschoben.
Das sieht mir sehr verdächtig nach einer Datenbank-Frage aus. Und ab damit.
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: SQL Befehl Datum zwischen x und x funktioniert nicht ric

  Alt 24. Feb 2004, 23:18
Wie wäre es denn auf die einfache Art (und vor allem ohne implizierte Umwandlungen!)
Delphi-Quellcode:
  With ADOQuery Do
  Begin
    SQL.Text :=
      'SELECT *' + #10 +
      'FROM Wiedervorlage' + #10 +
      'WHERE Datum BETWEEN :i_Datum_von AND :i_Datum_bis AND' + #10 +
      ' VBNummer = :i_VBNummer' + #10 +
      'ORDER BY Datum';
  // Parsing des Statements um Query Parameter zu finden...
    Prepared := True;
  // Werte an Query Parameter übergeben...
    Parameters.ParamByName('i_Datum_von').DataType := ftDateTime;
    Parameters.ParamByName('i_Datum_bis').DataType := ftDateTime;

    Parameters.ParamByName('i_VBNummer').Value := VBNummer;
    Parameters.ParamByName('i_Datum_von').Value := DTP_Wiedervorlagen_von.Date;
    Parameters.ParamByName('i_Datum_bis').Value := DTP_Wiedervorlagen_bis.Date;
    Open;
  End;
  Mit Zitat antworten Zitat
X21Carsten

Registriert seit: 15. Feb 2004
Ort: Zwickau
27 Beiträge
 
#5

Re: SQL Befehl Datum zwischen x und x funktioniert nicht ric

  Alt 25. Feb 2004, 09:26
danke für die tipps, ich probiere es gleich mal aus.
Ich bin nicht so der Delphi profi, lerne mir viele sachen selbst, deswegen siehts manchmal etwas umständlich aus
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: SQL Befehl Datum zwischen x und x funktioniert nicht ric

  Alt 25. Feb 2004, 09:50
Du willst gar nicht wissen, wie meine ersten Anwendungen vor ca. einem Jahr aussahen.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: SQL Befehl Datum zwischen x und x funktioniert nicht ric

  Alt 18. Mär 2004, 07:15
Hallo X21Carsten,

beim BETWEEN mit Datumswerten muss man aufpassen. Denn ein reiner Datumswert stellt immer den Tag um 0:00 dar. wenn Du DateTime Werte in der Datenbank hast, muss deshalb der Wert-Bis (nach dem AND) einen Tag grösser sein. In Deinem Beispiel müsstest Du dann abfragen bis zum 17.3.

bye
  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:46 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