SQL Abfrage heutige Geburtstage

Diskutiere SQL Abfrage heutige Geburtstage im Software Forum Forum im Bereich Hardware & Software Forum; Servus zusammen. Ich möchte eine SQL Abfrage für die Geburtstage die nächsten 7 Tage machen. Ich habe hier eine Vorlage, die mir die nächsten 7...
  • SQL Abfrage heutige Geburtstage Beitrag #1
Choco

Choco

Bekanntes Mitglied
Dabei seit
23.01.2000
Beiträge
26.778
Reaktionspunkte
4
Ort
zu Hause
Servus zusammen.

Ich möchte eine SQL Abfrage für die Geburtstage die nächsten 7 Tage machen.

Ich habe hier eine Vorlage, die mir die nächsten 7 Tage ausliest.

Aber leider nicht den heutigen Tag.

Wie muss der Filter den aussehen, damit auch der heutige Geburtstag mit selektiert wird?

' Microsoft SQL Server Filter
sFilter = "SELECT ID " & _
"FROM Kunden " & _
"WHERE Geburtsdatum_Person_1 = " & _
"(CASE " & _
" WHEN (datepart(dayofyear, convert(datetime, '31.12.' + cast(datepart(year, getdate()) as varchar), 104)) = 365) AND (datepart(dayofyear, Geburtsdatum_Person_1) >= datepart(dayofyear, getdate())) AND (datepart(dayofyear, Geburtsdatum_Person_1) < datepart(dayofyear, getdate()) + 7) THEN Geburtsdatum_Person_1 " & _
" WHEN (datepart(dayofyear, convert(datetime, '31.12.' + cast(datepart(year, getdate()) as varchar), 104)) = 366) AND (datepart(dayofyear, Geburtsdatum_Person_1) >= datepart(dayofyear, getdate())) AND (datepart(dayofyear, Geburtsdatum_Person_1) < datepart(dayofyear, getdate()) + 6) THEN Geburtsdatum_Person_1 " & _
" WHEN (datepart(dayofyear, getdate()) + 7) - datepart(dayofyear, convert(datetime, '31.12.' + cast(datepart(year, getdate()) as varchar), 104)) > datepart(dayofyear, Geburtsdatum_Person_1) THEN Geburtsdatum_Person_1 " & _
"END)"
 
  • SQL Abfrage heutige Geburtstage Beitrag #2
S

Stefan

Guest
Machs doch nicht so kompliziert, da blickt doch keiner mehr durch :) Ich könnte dir beispielsweise nicht auf Anhieb sagen, ob deine Lösung auch über den Jahreswechsel noch ordentlich funktioniert.

Musst du evtl. noch an deinen SQL-Dialekt anpassen, Beispiel ist für MySQL geschrieben:
SELECT *
FROM `Kunden`
WHERE 1 = ( FLOOR( DATEDIFF( CURDATE( ) +7, `Geburtsdatum_Person_1` ) / 365.25 ) ) - ( FLOOR( DATEDIFF( CURDATE( ) -1, `Geburtsdatum_Person_1` ) / 365.25 ) )
In der WHERE Anweisung wird im Prinzip einfach der Altersunterschied zwischen dem Alter in sieben Tagen und gestern berechnet. Wenn dieser 1 ist, dann hat die Person innerhalb dieses Zeitraums Geburtstag gehabt.

Freundliche Grüße

Stefan
 
  • SQL Abfrage heutige Geburtstage Beitrag #3
WhiskeyCola16

WhiskeyCola16

Bekanntes Mitglied
Dabei seit
22.12.2001
Beiträge
971
Reaktionspunkte
1
Ort
Österreich
Warum nicht
Code:
SELECT * 
FROM Kunden
WHERE Geburtsdatum_Person_1 BETWEEN CURDATE() AND (CURDATE() + INTERVAL 7 DAY);
 
  • SQL Abfrage heutige Geburtstage Beitrag #4
Choco

Choco

Bekanntes Mitglied
Dabei seit
23.01.2000
Beiträge
26.778
Reaktionspunkte
4
Ort
zu Hause
Den Filter den ich gepostet habe, ist eine Vorlage aus einem mitgeliefertem Script.

Es berücksichtigt halt die Schaltjahre.

Hab jetzt noch am Schluss die Zeile

" WHEN (datepart(dayofyear, Geburtsdatum_Person_1) = datepart(dayofyear, getdate())-1) THEN Geburtsdatum_Person_1 " & _
mit einbaut.

Allerdings wird darin noch nicht berücksichtigt, dass heuer ein Schaltjahr war.
Deshalb das manuelle "-1", dass ich rot markiert habe.
Muss ich noch erweitern.

Euro Lösungen werde ich mir auch mal anschauen.
Danke schon mal für die Hilfe.
 
  • SQL Abfrage heutige Geburtstage Beitrag #5
S

Stefan

Guest
Warum nicht
Code:
WHERE Geburtsdatum_Person_1 BETWEEN CURDATE() AND (CURDATE() + INTERVAL 7 DAY);
Weil das Geburtsdatum in der Vergangenheit liegt - wenn du am 22.12.1962 geboren bist, dann liegt das Datum nicht zwischen dem 22.12.2012 und dem 29.12.2012
 
  • SQL Abfrage heutige Geburtstage Beitrag #6
WhiskeyCola16

WhiskeyCola16

Bekanntes Mitglied
Dabei seit
22.12.2001
Beiträge
971
Reaktionspunkte
1
Ort
Österreich
Haha!
1. Urlaubstag seit einem Jahr, und schon komplett im Urlaubsmodus. ^.^
 
Thema:

SQL Abfrage heutige Geburtstage

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.173
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben