AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datumsbereich

Ein Thema von X21Carsten · begonnen am 15. Feb 2004 · letzter Beitrag vom 16. Feb 2004
Antwort Antwort
X21Carsten

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

Datumsbereich

  Alt 15. Feb 2004, 12:14
Hallo,

ich möchte in einem SQL Befehl einen Datumsbereich festlegen. Leider hab ich wahrscheinlich nicht den richtigen Befehl. Es kommt immer ein Fehler. Vielleicht kann mir jemand von euch weiterhelfen.
zur Zeit benutze ich folgenden Befehl:

DSet_Wiedervorlage.CommandText:='SELECT * FROM Wiedervorlage WHERE (((Wiedervorlage.Datum) Between '''+datetostr(DTP_Wiedervorlagen_von.date)+''' And '''+datetostr(DTP_Wiedervorlagen_bis.date)+''')) ORDER BY Wiedervorlage.Datum

Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datumsbereich

  Alt 15. Feb 2004, 12:20
Das kommt auf die Datenbank an. In einer Oracle-Datenbank würde ich folgendes Konstrukt wählen:

DSet_Wiedervorlage.CommandText:='SELECT * FROM Wiedervorlage WHERE (TRUNC((Wiedervorlage.Datum) Between TO_DATE('+ QuotedStr(datetostr(DTP_Wiedervorlagen_von.date)) + ' And '+ QuotedStr(datetostr(DTP_Wiedervorlagen_bis.date)) + ')) ORDER BY Wiedervorlage.Datum' Letztlich vergleichst du einen numerischen Wert. In deiner Konstruktion willst du aber einen numerischen (das Datumsfeld) mit zwei Strings vergleichen, und das geht so nicht.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#3

Re: Datumsbereich

  Alt 15. Feb 2004, 12:25
Hallo,

Ich habe das ganze so gelöst das ich gesagt habe gebe mir alles zwischen dem und dem Datum aus.

Code:
Select * From "'DB'" Where Datum < Datum and Datum >Datum+1
Das +1 war war bei mir notwendig, da er ansonsten den letzten Tag übergangen hat.
  Mit Zitat antworten Zitat
X21Carsten

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

Re: Datumsbereich

  Alt 15. Feb 2004, 12:26
ich habe ein access datenbank
  Mit Zitat antworten Zitat
X21Carsten

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

Re: Datumsbereich

  Alt 15. Feb 2004, 12:42
und in der access datenbank sind die felder typ datum
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Datumsbereich

  Alt 15. Feb 2004, 12:44
Hast du auch Access? Wenn ja, warum baust du dir dann nicht einfach mal eine View gemäß deinen Forderungenund liest anschließend den SQL-Text aus?

Access erwartet das Datum in folgendem Format: #mm/dd/yyyy#

Besser als mit einer eigenen Zuweisung funktioniert es wohl so:

1. du weist einer TAdoQuery (oder auch TAdoDataSet, benutze ich selten) folgendes Statement in der Property SQL zu:
'SELECT * FROM Widervorlage WHERE [Datum] BETWEEN _ANFANG AND _ENDE'

2. Die beiden Parameter P_ANFANG und P_ENDE Haben folgende Eigenschaften:
+ DataType: ftDateTime und Type
+ Value.Type: Date

3. In deinem Quelltext weist du die benötigten Daten zu:
[/delphi]Query1.Parameters[0].Value = DTP_Wiedervorlagen_von.date;
Query1.Parameters[1].Value := DTP_Wiedervorlagen_Bis.date

4. Mit der Methode Open öffnest du die Query, falls sie noch geschlossen ist oder verwendest die Methode Requery, falls die Query bereits geöffnet ist.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Datumsbereich

  Alt 15. Feb 2004, 15:01
Ich glaube so etwas wie Views wirst du in einer Pseudo-DB wie Access nicht finden!

"Open" kannst du IMHO immer nutzen (solange es ein SELECT-Statement ist).
Wenn du das ganze so schreibst, weißt du auch in 2 Wochen noch was du hier machen wolltest (Nichts ist unübersichtlicher als unformatierte SQL-Statements):
Delphi-Quellcode:
With Query Do
  SQL.Text :=
    'SELECT *' + #10 +
    'FROM Wiedervorlage' + #10 +
    'WHERE Datum BETWEEN :P_ANFANG AND :P_ENDE';
  Prepared := True;
  Params.ParamByName('P_ANFANG').Value := DTP_Wiedervorlagen_von.Date;
  Params.ParamByName('P_ENDE').Value := DTP_Wiedervorlagen_bis.Date;
  Open;
  While not Eof Do
  Begin
    ...
    Next;
  End;
  ...
End;
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Datumsbereich

  Alt 15. Feb 2004, 18:45
Zitat:
Ich glaube so etwas wie Views wirst du in einer Pseudo-DB wie Access nicht finden!
Stimmt, da heißen sie Abfragen.

Über die Formatierung kann man im Delphi Source streiten, wenn ich auch zugebe, daß ich eine entsprechende Formatierung selbst vorziehe.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
X21Carsten

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

Re: Datumsbereich

  Alt 16. Feb 2004, 08:12
Vielen Dank, das hat funktioniert.

Gruß Carsten
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:34 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