Datumsvergleich

Arndtinho

Erfahrenes Mitglied
Hi,

ich möchte aus einer DB alle die Datensätze auslesen, deren Geburtstage zwischen dem 'aktuellen Tag' und dem 'aktuellen Tag +7' liegen. Ich hatte es est mit Umwandlung in Strings versucht, brachten aber kein eindeutiges Ergebnis.
Wie löst man sowas?

Gruß Arndtinho
 
Hallo,

DateTime Objeket haben verschiedene Add-Methoden,
so zum Beispiel AddDays

Damit kannst die die 2 benötigten Daten holen, und dementsprechend eine SQL Abfrage erstellen.

Code:
DateTime dtNow = DateTime.Now;
DateTime dtFuture = dtNow.AddDays(7);

string sql = "SELECT * FROM tabBlubb WHERE birthday > #" + dtNow + "# AND birthday < #" + dtFuture + "#";
..

So könntest probieren.

Mfg,
Alex
 
Re:

Hi,

danke für den Tipp.
Ich hab das mal probiert und bekomme jetzt folgenden Fehler:

"Datentypen in Kriterienausdruck unverträglich."

Ich dachte erst, dass es an der Formatierung des Datums in der Datenbank liegt. Habe dann das Datumsformat 'kurz' in Standart umgewandelt. Aber die Fehlermeldung erscheint erneut. Was könnte das Problem sein?

Gruß Arndtinho
 
Es wird drauf ankommen, was für eine Datenbank du benutzt.
Bei MySQL müsstest du das Datum in einen bestimmten String formatieren.

So könntest also noch probieren. (Egal ob nun mySQL oder nicht)

Code:
string sql = "SELECT * FROM tabBlubb WHERE birthday > '" + dtNow.ToLongDateString() + "' AND birthday < '" + dtFuture.ToLongDateString() + "'";
 
Re:

Hi,

also ich habe mir jetzt mal die Select ausgeben lassen. Da scheint alles zu passen. Irgendwwas hapert an der DB-Tabelle bzw. an der Feldformatierung in der Tabelle, weil die Fehlermeldung erscheint wieder. Ich nutze Access.

Gruß Arndtinho
 
Zurück