![]() |
String mit Datum vergleichen , ist Datum größer als der String ?
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 ? |
AW: String mit Datum vergleichen , ist Datum größer als der String ?
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:
So oder so ähnlich müsste das funktionieren.
SELECT
<Feldliste> FROM <Tabelle> WHERE NOT (YEAR(<Feld>) = 2011 AND MONTH(<Feld>) = 4) |
AW: String mit Datum vergleichen , ist Datum größer als der String ?
SQL-Code:
*klugscheiss* :warn: :mrgreen:
SELECT
<Feldliste> FROM <Tabelle> WHERE (YEAR(<Feld>) = 2011) AND (MONTH(<Feld>) < 5) |
AW: String mit Datum vergleichen , ist Datum größer als der String ?
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 :gruebel: [/edit] |
AW: String mit Datum vergleichen , ist Datum größer als der String ?
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. :gruebel:
|
AW: String mit Datum vergleichen , ist Datum größer als der String ?
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. |
AW: String mit Datum vergleichen , ist Datum größer als der String ?
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' ) |
AW: String mit Datum vergleichen , ist Datum größer als der String ?
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.
|
AW: String mit Datum vergleichen , ist Datum größer als der String ?
Zitat:
|
AW: String mit Datum vergleichen , ist Datum größer als der String ?
Wenn ich den Ausgangspost richtig verstanden habe, ist das Feld vom Typ DATE.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz