AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Abfrage - Datum zwischen X und Y

SQL Abfrage - Datum zwischen X und Y

Ein Thema von Major1337 · begonnen am 14. Sep 2009 · letzter Beitrag vom 17. Sep 2009
Antwort Antwort
Seite 2 von 4     12 34   
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#11

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 14. Sep 2009, 17:01
Wenn jedes Byte mit führenden Nullen geschrieben ist ja, sonst wohl eher nein.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Major1337

Registriert seit: 26. Jul 2009
158 Beiträge
 
#12

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 15. Sep 2009, 07:46
Die möglichen Beispiele die oben genannt worden sind wie beispielsweise mit Markos konnte ich nicht ganz nachvollziehen.
Ich zeige euch mal nochmal anhand meines Quellcodes wie es aussehen sollte.

Delphi-Quellcode:
if DateFromEdit.text <> 'then
    begin
     SmartQuery1.SQL.Add('{ DateFromEdit.Text bis ENDE} ');
     SmartQuery1.ParamByName('').AsString := DateFromEdit.Text;
    end;

  if DateUntilEdit.Text <> 'then
  begin
  SmartQuery1.SQL.Add('{DateFromEdit.Text bis DateUntilEdit.Text OR ANFANG bis DateUntilEdit.Text}');
  SmartQuery1.ParamByName('').asString := DateUntilEdit.Text;
jetzt bräuchte ich nur noch die richtige Syntax dafür, dass mein Compiler damit auch was anfangen kann.^^

Gruß
Major
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

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

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 15. Sep 2009, 12:14
Du mischst Delphi mit SQL: Kommentare werden in SQL mit '/*' und '*/' geklammert oder eine ganze Zeile mit '--' auskommentiert.

Grüße
Mikhal

Edit: Schreibfehler...
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 15. Sep 2009, 14:30
Delphi-Quellcode:
if DateFromEdit.text <> 'then
begin
  if DateUntilEdit.Text <> 'then
  begin
    SmartQuery1.SQL.Add(' and fromdate>=:ANFANG and untildate<=:ENDE);
SmartQuery1.ParamByName(
'ANFANG').asString := DateUntilEdit.Text;
SmartQuery1.ParamByName(
'ENDE').asString := DateUntilEdit.Text;
end
else
begin
SmartQuery1.SQL.Add(
and fromdate>=:ANFANG ');
SmartQuery1.ParamByName(
'ANFANG').asString := DateUntilEdit.Text;
end;
je nachdem wie das abzufragende Feld heißt mußt Du fromdate und untildate durch die richtigen namen ersetzen.
und nach dieser Aktion darfst Du keine weiteren Veränderungen am SQL-Text vornehmen (soweit ich weiß!)
ggf. mußt Du die Generierung des SQL-Textes und die Parameterübergabe dann aufteilen.

ist das .asString erst gemeint??
das halte ich nicht für empfehlenswert da es ja viele unterschiedliche Möglichkeiten gibt ei Datum darzustellen. Einzig mit YYYYMMDD könnte man das halbwegs ordentlch machen.

Gruß
K-H
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#15

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 15. Sep 2009, 15:38
*hust*

Ich weiß nicht, aber wenn ich mit Kalenderdaten um mich schmeißen muss, dann bietet sich doch im GUI ein TDateTimePicker an und in der Datenbank ein (oder in diesem Falle zwei) Felder vom Typ "DATE". (So denn Oracle so einen Typen kennt...).
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#16

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 15. Sep 2009, 16:07
@Daniel G

Naja der tDateTimepicker ist nicht jedermans Sache (ich bin da bei enem Anwender hochkant aus dem Büro geflogen) aber Du hast schon recht (oracle hat einen Datumstypen) so früh wie möglich auf Datumstypen gehen, damit's da keine Probleme gibt.

Gruß
K-H
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 15. Sep 2009, 16:11
Das gilt grundsätzlich für alle Daten, wenn möglich die entsprechenden Typen verwenden. Mit dem Motto: "Ein String nimmt alles auf" fällt man schnell auf die Schnauze!
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#18

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 15. Sep 2009, 16:12
Zitat von p80286:
(ich bin da bei enem Anwender hochkant aus dem Büro geflogen)
Ernsthaft? Naja, das aufpoppende Fensterchen kann man notfalls ja noch verstecken, oder man leitet sich da was eigenes ab, aber für Datumseingaben ist er eigentlich optimal und auch recht komfortabel. Aber User sind eh manchmal komisch...
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#19

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 15. Sep 2009, 16:21
[OT]
na ja, nach alter Väter Sitte über die Tastatur.... (ist man halt so gewohnt)
und ich hatte die Eingabeüberprüfung an der Backe (Das wäre mal eine Aufgabenstellung für den Informatikunterricht!)
[/OT]

Gruß
K-H
  Mit Zitat antworten Zitat
Major1337

Registriert seit: 26. Jul 2009
158 Beiträge
 
#20

Re: SQL Abfrage - Datum zwischen X und Y

  Alt 15. Sep 2009, 17:12
@p80286

danke für deine Lösung aber ich muss nur ein Feld abfragen da gibts keine zwei unterschiedliche Namen, nur einen.
Kann von diesem PC aus nicht das Projekt pflegen, könntest du mir aber trotzdem schreiben ob man es so schreiben kann.


Delphi-Quellcode:
....
  SmartQuery1.SQL.Add(' and date >= :ANFANG and date <= :ENDE);
....
else
....
SmartQuery1.SQL.Add(
and date >=:ANFANG ');
...
  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 11:12 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