Query für Geburtstage

internet

Top Contributor
Hallo zusammen,

ich möchte gerne eine Query in JPA bauen, die mir die nächsten Geburtstage anzeigt.
Das Geburtsdatum speichere ich natürlich so ab 01.01.1970

Wie gehe ich hierbei ran? Suche ich nur nach dem Tag und Monat oder wie mache ich das?
Hat das gegebenfalls schon mal jemand implementiert?

Freue mich über Antworten.
 
Registriert seit: 21.10.2009

Du beschäftigst dich seit 5 Jahren mit Java.

Du postest hier bereits über 300 Fragen.

Das Geburtsdatum speichere ich natürlich so ab 01.01.1970

Wie? Als String? Date? oder Fettgedruckt?

Kann man hier nicht eine naive implementierung nehmen mit gebdate= or gebdate= or or or

Später kann man between nutzen oder "SQL DATE ARITHMETIC" suchen. Kann jede SQL DB.
 
ich möchte gerne eine Query in JPA bauen, die mir die nächsten Geburtstage anzeigt.

Frag dich doch mal selbst, wie da eine Antwort, bei den echt rudimentären Angaben, aussehen könnte?

Das Einzige, was du noch sagst, ist "01.01.1970" und da würde ich alle Tage ausgeben. Denn jeder Tag ist ein Geburtstag irgendeines Menschen und das kannst du somit bis in alle Ewigkeit machen.

Also musst du definitiv mehr Informationen nennen, weiss aber auch nicht wo ein Problem sein könnte, denn wie JavaMeister schon richtig anmerkte, trivialer Vergleich eines Datums mit DB-Eintrag aus DB sollte doch reichen, oder?
 
Okay, danke - ich hätte vielleicht mehr Infos nennen sollen:

In meiner Entity sieht mein Geburtstag so aus:

Java:
	@Column(name = "birthdate")
	@Temporal(DATE)
	private Date birthdate = null;

Mein Problem ist eher, dass ich ja bspw. ein Geb habe 01.01.1970.
Nun möchte ich ja aber nur den Tag und den Monat.
Ebenso bereitet es mir Schwierigkeiten zu prüfen "in den nächsten Tagen".


Java:
Select * From Kunde k Where k.birthdate ??? heute oder in den nächsten Tage ???
 
Zuletzt bearbeitet:
Wurde ebenfalls bereits genannt, das Datum-Arithmetik in SQL möglich ist. Hier gibt es dazu ein paar Infos.

Eine Query, die das exemplarisch macht, könnte so aussehen, wobei date1 bzw. date2 wieder Date-Objekte sind.

SQL:
Select * From Kunde k where k.birthdate between :date1 and :date1

Analog sähen das Beispiel für "die nächsten Tage" ziemlich ähnlich aus, musst nur die entsprechenden Funktionen der DB nutzen (siehe Link).
 
Hast du mal ein Beispiel zur Hand?

Hört sich für mich erst mal nach einem Join an. Und dabei müssen die Einträge aus den beteiligten Tabellen in einer Beziehung stehen, üblicherweise über deren Schlüssel.

Ah sorry, sehe gerade den anderen Thread. Lese/Antworte dann da😉
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben