AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi String mit Datum vergleichen , ist Datum größer als der String ?
Thema durchsuchen
Ansicht
Themen-Optionen

String mit Datum vergleichen , ist Datum größer als der String ?

Ein Thema von nachtstreuner · begonnen am 30. Mai 2011 · letzter Beitrag vom 30. Mai 2011
Antwort Antwort
Seite 1 von 2  1 2      
nachtstreuner

Registriert seit: 21. Aug 2005
Ort: ESA
104 Beiträge
 
Delphi XE2 Professional
 
#1

String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:20
Hallo Delphianer,

ich steh mal wieder vor einem Rätsel:

In einer Datenbanktabelle existiert ein Feld (Angelegt) Format (Date z.b. 14.05.2011).

Der Benutzer wählt aus einer Lookup Kompo einen Monat aus: z.B. '04.2011' (string).

In der SQL-Abfrage sollen nun alle Datensätze nicht angezeigt werden, die im Mai 2011 angelegt wurden.

Wie mach ich das in einer SQL-Abfrage ?
Alles wird gut -
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:31
Je nach DBMS könntest Du dessen Datumsroutinen nutzen. Dazu musst Du die Angabe aus der ComboBox dann in Monat und Jahr zerlegen.
SQL-Code:
SELECT
  <Feldliste>
FROM
  <Tabelle>
WHERE
  NOT (YEAR(<Feld>) = 2011 AND MONTH(<Feld>) = 4)
So oder so ähnlich müsste das funktionieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:34
SQL-Code:
SELECT
  <Feldliste>
FROM
  <Tabelle>
WHERE
  (YEAR(<Feld>) = 2011) AND (MONTH(<Feld>) < 5)
*klugscheiss*
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:36
Wenn schon, müsste es ja MONTH > 4 heißen. Aber der Threadtitel und die Problembeschreibung sind etwas widersprüchlich formuliert (was denn jetzt, Datum größer oder Datum ungleich?).

[edit] Obwohl: der Mai wäre ja 5 statt 4, es wird immer verwirrender [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:46
Ja, so 100% sicher bin ich mir da auch nicht. Wenn man aus der Combo zB 04.2011 auswählen kann und er dann nur alle ausblenden soll, die im Mai (05) angelegt wurden, macht das wenig Sinn. Daher bin ich mal davon ausgegangen, dass er alle bis zum Mai anzeigen lassen will, daher das < 5.
  Mit Zitat antworten Zitat
nachtstreuner

Registriert seit: 21. Aug 2005
Ort: ESA
104 Beiträge
 
Delphi XE2 Professional
 
#6

AW: String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:46
Hallo DeddyH,

wie schon beschrieben, wird aus einer Lookup Komponente ein String ausgewählt, der den Monat und das Jahr darstellt.

Stringwert : '04.2011' ( Dies ist also kein Datumswert, sondern ein string).

In der Datenbank befinden sich Einträge z.B.:

ID NAME VORNAME ANGELEGT
----------------------------------------
1 Mustermann Andreas 01.04.2011
2 Bettler Sabine 14.05.2011
3 Landstreicher Thomas 12.03.2011

Die Abfrage soll nun nur die Datensätze ID(1 und 3), da diese mit dem Datum(ANGELEGT),entweder in dem selektierten LookupWert liegen oder Monate davor.

Hoffe das dies nun anschaulicher ist.

Trotzdem danke erstmal für die schnellen Antworten.
Alles wird gut -
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:51
Ich würde den ausgewählten String als Stringparameter an die Db übergeben und dort von der DB mit den zugehörigen Routinen nach DATE konvertieren lassen

Bspw. in Oracle:
Code:
Select * from tabelle
where datumsfeld [<|>|=|...]
to_date('01'|:stringparam, 'DD.MM.YYYY' )
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:53
Wie gesagt: den String zerlegen in Monat und Jahr, das ist der erste Schritt. Nun könnte man noch den genauen Folgemonat ermitteln und in der DB einfach auf kleiner 1. dieses ermittelten Monats abfragen, sofern ich gerade keinen Denkfehler mache.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:55
Hallo DeddyH,

wie schon beschrieben, wird aus einer Lookup Komponente ein String ausgewählt, der den Monat und das Jahr darstellt.

Stringwert : '04.2011' ( Dies ist also kein Datumswert, sondern ein string).

In der Datenbank befinden sich Einträge z.B.:

ID NAME VORNAME ANGELEGT
----------------------------------------
1 Mustermann Andreas 01.04.2011
2 Bettler Sabine 14.05.2011
3 Landstreicher Thomas 12.03.2011

Die Abfrage soll nun nur die Datensätze ID(1 und 3), da diese mit dem Datum(ANGELEGT),entweder in dem selektierten LookupWert liegen oder Monate davor.

Hoffe das dies nun anschaulicher ist.

Trotzdem danke erstmal für die schnellen Antworten.
Ist das Feld ANGELEGT auch ein STRING-Feld? Wenn ja, warum? Sollte auf jeden Fall als DATE-Feld deklariert sein, weil du darüber eben über die Datumsfunktionen der SQL-Engine (YEAR, MONTH, >, <, =, ...) arbeiten kannst.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: String mit Datum vergleichen , ist Datum größer als der String ?

  Alt 30. Mai 2011, 16:56
Wenn ich den Ausgangspost richtig verstanden habe, ist das Feld vom Typ DATE.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 13:33 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