AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datum vergleichen

Ein Thema von Barzy2x · begonnen am 18. Dez 2002 · letzter Beitrag vom 19. Dez 2002
Antwort Antwort
Seite 1 von 2  1 2      
Barzy2x

Registriert seit: 1. Dez 2002
Ort: Ilmenau
23 Beiträge
 
#1

Datum vergleichen

  Alt 18. Dez 2002, 12:31
Folgende Abfrage habe ich formuliert:
Code:
Query1.SQL.Add('SELECT Uhrzeit,Convert(datetime,convert(char(10),Datum,104)),Beschreibung FROM TestTabelle WHERE Datum < GetDate()');
Ich möchte aus der Tabelle, die Uhrzeit,Datum und Beschreibung enthält alle Datensätze anzeigen lassen die Datum kleiner aktuelles Datum beinhalten. Delphi meldet mir jedoch "Ungültiges Befehlsende Symbol String". Weiß jemand wo der Fehler liegt?
  Mit Zitat antworten Zitat
Benutzerbild von harrybo
harrybo

Registriert seit: 26. Nov 2002
Ort: Aachen
87 Beiträge
 
Delphi 6 Enterprise
 
#2
  Alt 18. Dez 2002, 13:54
Hi Barzy2x,

In Deiner WHERE Klausel wird wahrscheinlich ein String erwartet, und der - weil Datum - wahrscheinlich noch in Hochkommata. Also versuch mal
Code:
SELECT ... +
'WHERE Datum < ' + QuotedStr(DateToStr(GetDate()));
Die Syntax ist hier allerdings datenbankabhängig

gruß, harrybo

P.S. Ich würde es hilfreich finden, wenn bei Fragen in diesem Forum immer von vorn herein auch mit angegeben würde, mit welcher Datenbank man arbeitet - es gibt einfach zu viele spezifische Unterschiede.
Harry Boldt
  Mit Zitat antworten Zitat
Barzy2x

Registriert seit: 1. Dez 2002
Ort: Ilmenau
23 Beiträge
 
#3
  Alt 18. Dez 2002, 14:23
Arbeite mit einer Paradox Tabelle. Erhalte nun den Fehler : Ungültiges Schlüsselwort Symbol-String...
  Mit Zitat antworten Zitat
TheRebel

Registriert seit: 17. Dez 2002
3 Beiträge
 
#4
  Alt 18. Dez 2002, 14:46
Das Problem liegt höchstwahrscheinlich nicht nur im syntaktisch falschen Aufbau der SQL Anfrage. (funktionen bzw variablen von delphi müssen ausserhalb des strings stehen Query.Sql.Add('SQLANWEISUNG TEIL1 '+getdate()+'SQLANWEISUNG TEIL2'); sonst werden sie nicht ausgewertet)

Sondern wohl vorallem darin das das Local SQL von Delphi die CONVERT Funktion nicht kennt (siehe Handbuch Local Sql, irgendwo auf ihrer Harddisk, am besten nach sql suchen) Das Problem hatte ich auch schon.
  Mit Zitat antworten Zitat
Barzy2x

Registriert seit: 1. Dez 2002
Ort: Ilmenau
23 Beiträge
 
#5
  Alt 18. Dez 2002, 17:25
Das hat mir schon weitergeholfen. Dennoch hänge ich immer noch an einem Problem. Welche SQL Anweisung vermittelt, das ich das Datum der Spalte mit dem aktuellen Datum auf dem System vergleichen will (z.B ...WHERE (Extract((month from Datum)) = aktDatum). ich kann nicht ein stat. Datum für aktDatum eingeben, da sich Delphi melden soll wenn ein bestimmtes Datum erreicht wurde. Weiß jemand wie ich mit SQL das Datum auf dem System erhalte?
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#6
  Alt 18. Dez 2002, 17:47
Hallo Barzy

So wie ich verstehe, arbeitest Du mit Paradox. Bin deshalb nicht sicher, ob das funktioniert aber Du kannst einmal folgendes versuchen:

Code:
Select * from Tabelle where datumfeld > GetDate()
Auf SQLServer funktioniert das. Also versuch es einmal.

Gruss
Xaver
  Mit Zitat antworten Zitat
Barzy2x

Registriert seit: 1. Dez 2002
Ort: Ilmenau
23 Beiträge
 
#7
  Alt 18. Dez 2002, 17:53
Das habe ich schon ausprobiert. Leider ohne Erfolg. Fehlermeldung: Merkmal nicht verfügbar. Scheint an Local SQL zu scheitern.
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#8
  Alt 18. Dez 2002, 17:59
Ich denke, das heisst, dass Du in diesem Falle das SQL-Statement jedes mal vor der Aktivierung anpassen musst.

Ich würde das wie folgt machen:
SQL-Statement
Code:
SELECT * FROM TableName WHERE DataField > :CurDate
Aufruf in Delphi:
Code:
Query.ParamByName('CurDate').AsDateTime := Now;
Query.Active := true;
....
Gruss
Xaver
  Mit Zitat antworten Zitat
Barzy2x

Registriert seit: 1. Dez 2002
Ort: Ilmenau
23 Beiträge
 
#9
  Alt 18. Dez 2002, 18:13
Muss ich den Parameter CurDate vorher deklarieren? Delphi meldet dass er ihn nicht findet...
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#10
  Alt 18. Dez 2002, 18:20
Normalerweise wird dier Parameter automatisch erstellt, wenn Du das SQL-Statement im Delphi erfasst. Du kannst das nachsehen, indem Du das Property Params öffnest. Ev. musst Du hier noch das Property DataType definieren. Damit hat es sich.

Gruss
Xaver
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:43 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