CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
05.12.2014, 15:59:49
|
Anfänger
|
|
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
|
|
Geburtstsliste Jahresübergreifend
Hallo Leute!
Ich möchte eine Liste anzeigen, auf der Personen angezeigt werden, die in den kommenden Tagen haben UND in den letzten 5 Tagen Geburtstag hatten. Meine Recherche hat mich zu einem Codeschnippsel geführt, der auch prima die nächsten Geburtstage (Jahresüberfreifend) anzeigt. Aber wie kann ich da einbauen, dass auch die letzten 5 Tage berücksichtig werden?
Code:
$abfrage = "SELECT ID
, telefon
, name
, vorname
, gebdatum
, DAYOFMONTH(gebdatum) AS tag
, MONTH(gebdatum) AS monat
, DATEDIFF(gebdatum + INTERVAL YEAR(CURRENT_DATE) - YEAR(gebdatum) + CASE WHEN DATE_FORMAT(CURRENT_DATE, '%m%d') > DATE_FORMAT(gebdatum, '%m%d') THEN 1 ELSE 0 END YEAR,
CURRENT_DATE) AS tage_bis_zum_geburtstag
FROM datum
ORDER
BY tage_bis_zum_geburtstag ASC
LIMIT 15
";
Danke für die Aufmerksamkeit! ;-)
Markus
|
05.12.2014, 16:26:25
|
Junior Member
|
|
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
|
|
AW: Geburtstsliste Jahresübergreifend
Zitat:
Zitat von EmtekA
Hallo Leute!
Ich möchte eine Liste anzeigen, auf der Personen angezeigt werden, die in den kommenden Tagen haben UND in den letzten 5 Tagen Geburtstag hatten.
|
Scha einfach, ob sich das Alter geändert hat. Ich erzeuge mal on-the-fly eine Liste mit Datumsangaben:
Code:
test=*# select *, date_part('year', age(datum)) as alter, age(datum) from (select ('2000-11-25'::date + s * '1day'::interval)::date as datum from generate_Series(1,20) s) liste ; datum | alter | age
------------+-------+--------------------------
2000-11-26 | 14 | 14 years 9 days
2000-11-27 | 14 | 14 years 8 days
2000-11-28 | 14 | 14 years 7 days
2000-11-29 | 14 | 14 years 6 days
2000-11-30 | 14 | 14 years 5 days
2000-12-01 | 14 | 14 years 4 days
2000-12-02 | 14 | 14 years 3 days
2000-12-03 | 14 | 14 years 2 days
2000-12-04 | 14 | 14 years 1 day
2000-12-05 | 14 | 14 years
2000-12-06 | 13 | 13 years 11 mons 30 days
2000-12-07 | 13 | 13 years 11 mons 29 days
2000-12-08 | 13 | 13 years 11 mons 28 days
2000-12-09 | 13 | 13 years 11 mons 27 days
2000-12-10 | 13 | 13 years 11 mons 26 days
2000-12-11 | 13 | 13 years 11 mons 25 days
2000-12-12 | 13 | 13 years 11 mons 24 days
2000-12-13 | 13 | 13 years 11 mons 23 days
2000-12-14 | 13 | 13 years 11 mons 22 days
2000-12-15 | 13 | 13 years 11 mons 21 days
(20 rows)
Diese Tabelle nehme ich dann wieder und berechne wer um heute herum +/- 6 Tage Geburtstag hatte:
Code:
test=*# select *, date_part('year', age(datum)) from (select ('2000-11-25'::date + s * '1day'::interval)::date as datum from generate_Series(1,20) s) liste where date_part('year', age(datum-6)) != date_part('year', age(datum)) or date_part('year', age(datum+6)) != date_part('year', age(datum));
datum | date_part
------------+-----------
2000-11-30 | 14
2000-12-01 | 14
2000-12-02 | 14
2000-12-03 | 14
2000-12-04 | 14
2000-12-05 | 14
2000-12-06 | 13
2000-12-07 | 13
2000-12-08 | 13
2000-12-09 | 13
2000-12-10 | 13
2000-12-11 | 13
(12 rows)
|
05.12.2014, 16:43:31
|
Anfänger
|
|
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
|
|
AW: Geburtstsliste Jahresübergreifend
Vielen Dank, werde mal probieren, ich ich das nachstricken kann - auch wenn der Code für mich schwer nachvollziehbar ist :-)
|
06.12.2014, 12:25:04
|
Junior Member
|
|
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
|
|
AW: Geburtstsliste Jahresübergreifend
Zitat:
Zitat von EmtekA
Vielen Dank, werde mal probieren, ich ich das nachstricken kann - auch wenn der Code für mich schwer nachvollziehbar ist :-)
|
Ich seh grad, da ist ein Copy&Paste-Fehler im Bereich "date as datumfrom generate_Series", zwischen datum und from fehlt ein Leerzeichen.
|
06.12.2014, 15:04:11
|
Anfänger
|
|
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
|
|
AW: Geburtstsliste Jahresübergreifend
Zitat:
Zitat von pguser
Ich seh grad, da ist ein Copy&Paste-Fehler im Bereich "date as datumfrom generate_Series", zwischen datum und from fehlt ein Leerzeichen.
|
Das ist mir gar nicht aufgefallen, ich muss erst einmal Grundlagen schaffen um das gepostete zu kapieren *g*
Trotzdem danke!
|
06.12.2014, 19:04:30
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Geburtstsliste Jahresübergreifend
Hi
DATA : `bDayList`
Code:
"name","bddate"
"Heinz","2014-12-01"
"Gustaf","2014-12-02"
"Tina","2014-12-03"
"Bea","2014-12-05"
"Tobi","2014-12-06"
"Peter","2014-12-07"
"Florian","2014-12-08"
"Timo","2014-12-09"
"Alex","2014-12-10"
"Jolene","2014-12-11"
"Petra","2014-12-12"
"Susi","2014-12-13"
Query
Code:
SELECT *, datediff(`bddate`,now()) as daydiff FROM `bDayList` where datediff(`bddate`,now())>-5 and datediff(`bddate`,now())<5 order by daydiff
Result
Code:
"name","bddate","daydiff"
"Gustaf","2014-12-02","-4"
"Tina","2014-12-03","-3"
"Bea","2014-12-05","-1"
"Tobi","2014-12-06","0"
"Peter","2014-12-07","1"
"Florian","2014-12-08","2"
"Timo","2014-12-09","3"
"Alex","2014-12-10","4"
MfG
CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
06.12.2014, 23:05:49
|
Anfänger
|
|
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
|
|
AW: Geburtstsliste Jahresübergreifend
Zitat:
Zitat von Ckaos
Hi
DATA : `bDayList`
MfG
CKaos
|
Herzlichen Dank!!
Also: ich habe das jetzt mal so eingebaut:
Code:
$abfrage = "SELECT *, datediff(`gebdatum`,now()) as daydiff FROM `datum` where datediff(`gebdatum`,now())>-15 and datediff(`gebdatum`,now())<15 order by daydiff";
(datum die Tabelle, gebdatum die Geburtsdaten)
Leider bekomme ich aber keine Ergebnisse ausgeworfen - allerdings auch keine Fehlermeldung.
Noch etwas: Ich bin absoluter Anfänger, was mysql angeht, aber so wie ich das erkenne, ist so keine jahresübergreifende Abfrage möglich, oder?
|
08.12.2014, 10:19:33
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Geburtstsliste Jahresübergreifend
Hi,
Zitat:
aber so wie ich das erkenne, ist so keine jahresübergreifende Abfrage möglich, oder?
|
Die Abfrage interessiert keine Jahre, sie misst den Tagesunterschied zwischen zwei
Daten.
Womit testest du die Abfrage?
phpmyadmin, auf der console oder per PHP oder ... ?
Hat deine erste gepostete Abfrage funktioniert?
Kürze die Abfrage, also lass das where weg, was kommt dann?
MfG
CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
08.12.2014, 10:30:18
|
Anfänger
|
|
Registriert seit: Nov 2014
Alter: 57
Beiträge: 14
|
|
AW: Geburtstsliste Jahresübergreifend
Danke für die Antwort!
Ich teste das mit eine selbstgestricktem Script. Ohne Where bekomme ich Ergebnisse angezeigt. (Auf die Idee hätte ich auch selber kommen können...)
Da mir aber alle Geburtstage angezeigt werden, scheint etwas mit der were-Einschränkung Probleme zu machen.
|
08.12.2014, 13:58:52
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Geburtstsliste Jahresübergreifend
Hi,
dann zeig dein Ergebnis inklusive daydiff doch mal.
MfG
CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:00:29 Uhr.
|