![]() |
Geburtstage in xxx Tagen anzeigen im Dezember
Hallo,
ich ermittle die nächsten anstehenden Geburtstage. (DB = Access)
Delphi-Quellcode:
Das geht auch super solange wir nicht grad Dezember haben. Da bringt´s falsche Ergebnisse sobald es übers Jahr hinaus geht.
DM.ADOEreignisGeburtstag.SQL.Add('SELECT * FROM Adressen WHERE Format(Geburtstag, "mmdd") Between Format(Date(), "mmdd") And Format(DateAdd("d", :RANGE, Date()), "mmdd") ORDER BY 1');
DM.ADOEreignisGeburtstag.Parameters.ParamValues['RANGE'] := Edit2.Text; Hat jemand eine Idee; Gruß. |
AW: Geburtstage in xxx Tagen anzeigen im Dezember
Wenn man es gleich in beide Richtungen offen halten will, also x Tage vor heute bis y Tage nach heute sollte das hier funktionieren, sonst halt abspecken
im Beispiel x = 30 y = 20
Code:
SELECT * FROM Datum where DateSerial(Year(Date())-1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 or DateSerial(Year(Date()), Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 or DateSerial(Year(Date())+1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 |
AW: Geburtstage in xxx Tagen anzeigen im Dezember
Danke für Deine Antwort.
Leider werden dabei gar keine Ergebnisse mehr zurückgeliefert (in allen Monaten) |
AW: Geburtstage in xxx Tagen anzeigen im Dezember
Das wundert mich. Wenn ich die Bereiche versuchsweise mit ausgeben lasse
Code:
SELECT *,
DateSerial(Year(Date())-1, Month([Datum]), Day([DATUM])) as Vorjahr, DateSerial(Year(Date()), Month([Datum]), Day([DATUM])) as Jahr, DateSerial(Year(Date())+1, Month([Datum]), Day([DATUM])) as Folgejahr, Date()-30 as Untergrenze, Date() +20 as Obergrenze FROM Datum where DateSerial(Year(Date())-1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 or DateSerial(Year(Date()), Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 or DateSerial(Year(Date())+1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 bekomme ich folgendes Ergebnis
Code:
Vorjahr Jahr Folgejahr Untergrenze Obergrenze ID Datum
01.01.2012 01.01.2013 01.01.2014 21.12.2012 09.02.2013 1 01.01.1965 01.01.2012 01.01.2013 01.01.2014 21.12.2012 09.02.2013 4 01.01.2000 20.01.2012 20.01.2013 20.01.2014 21.12.2012 09.02.2013 6 20.01.1955 02.02.2012 02.02.2013 02.02.2014 21.12.2012 09.02.2013 7 02.02.2000 31.12.2012 31.12.2013 31.12.2014 21.12.2012 09.02.2013 8 31.12.2000 |
AW: Geburtstage in xxx Tagen anzeigen im Dezember
Danke nochmal, ich konnte jetzt nachvollziehen das sobald das Geburtsdatumfeld leer ist, folgende Fehlermeldung kommt:
(das keine Daten angezeigt wurden lag daran das es kein passendes Geburtsdatum gab) "Datentypen in kriterienausdruck unverträglich". Bis zu diesem leeren Feld kommen die Ergebnisse, beim leeren Feld bricht es ab. Kann man in der Abfrage unterbringen, das NULL-Felder nicht berücksichtigt werden sollen? Danke ereetzer |
AW: Geburtstage in xxx Tagen anzeigen im Dezember
'IS NOT NULL'.... Googeln hilft auch.
|
AW: Geburtstage in xxx Tagen anzeigen im Dezember
hatte es nicht geschrieben, aber IS NOT NULL an sich war mir schon klar, nur an der ausführung hapert as bei mir.
Delphi-Quellcode:
Das geht zum Beispiel nicht (gleiche Fehlermeldung). Und mir fehlen leider auch die Grundkenntniss um diese (für mich) schwierige Abfrage allein zu meistern.
SELECT * FROM Adressen where( Geburtstag IS NOT NULL) AND
(DateSerial(Year(Date())-1, Month([Geburtstag]), Day([Geburtstag])) between Date()-30 and Date() +20 or DateSerial(Year(Date()), Month([Geburtstag]), Day([Geburtstag])) between Date()-30 and Date() +20 or DateSerial(Year(Date())+1, Month([Geburtstag]), Day([Geburtstag])) between Date()-30 and Date() +20 ) Vielleicht hat noch jemand eine Idee? Danke. |
AW: Geburtstage in xxx Tagen anzeigen im Dezember
Code:
SELECT *
Where IIF(DATUM is NULL,false, DateSerial(Year(Date())-1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 or DateSerial(Year(Date()), Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 or DateSerial(Year(Date())+1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 ) |
AW: Geburtstage in xxx Tagen anzeigen im Dezember
IIF also, danke. Genauso geht´s
ereetzer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 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