Layoutprobleme? - Styleswitcher!
![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.550
| Also. Ich habe eine Liste mit Namen und dazugehörigen Geburtstagen, die im Format date vorliegen. Nun möchte ich gerne ein query haben, das mir die Geburtstage der nächsten x Tage zurückliefert. Da aber nunmal die Leute nicht alle im Jahre 2007 geboren sind, kann ich nicht einfach mit between und dem passenden timestamp arbeiten. Es mangeld mir gerade an einer brauchbaren Idee das umzusetzen. Meine Lieblingsseite zu dem Thema hat mir leider auch nicht geholfen... Hat jemand von euch eine Idee?
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw. Danke! |
| | |
| | Nach oben #2 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.500
| hm... einfach abfragen zwischen Tag-Monat% und Tag-Monat% (o.ä.) hab ehrlich gesagt noch nie mit den date-funktionen von mysql gearbeitet, aber so etwa sollte es doch machbar sein oder? also ein between und das Jahr mit % ersetzen...
__________________ I did it my way - Senseless-Blog |
| | |
| | Nach oben #3 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.550
| Ein sql Code:
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw. Danke! |
| | |
| | Nach oben #4 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.500
| Versuchs mal damit: sql Code:
je nachdem wie tagesgenau deine abfrage sein soll müssteste das noch variieren.
__________________ I did it my way - Senseless-Blog |
| | |
| | Nach oben #5 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.049
| les dich mal da durch: http://dev.mysql.com/doc/refman/5.0/...ons.html#c7091 dort und drunter gehts um Geburtstage und so kram, habs jetzt nur überflogen, aber die 2te lösung sieht klein und fein aus, wenn sie funktioniert, perfekt |
| | |
| | Nach oben #6 | |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.550
| den link von robo schau ich mir später noch in Ruhe an. Derweil sieht's so aus: sql Code:
und es scheint zu funktionieren... // edit: Zitat:
Der obere der beiden scheint wohl nach längerem überlegen zustande gekommen zu sein Ist jedenfalls ein ausgewachsendes statement! Ich werde die drei mal eine Weile prüfen und mal schauen, wer als erstes fehlerhafte Ergebnisse liefert. Euch schonmal ein Danke!
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw. Danke! | |
| | |
| | Nach oben #7 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 745
| Was spricht gegen DATEDIFF? Basti |
| | |
| | Nach oben #8 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.500
| Es ist ja nicht gefragt, wieweit die Tage auseinanderliegen, sondern es sollen alle Geburtstage unter Ignorierung des Jahrgangs in einem Zeitraum ausgelesen werden. DATEDIFF vergleicht doch nur 2 Daten und gibt ein Ergebnis raus.
__________________ I did it my way - Senseless-Blog |
| | |
| | Nach oben #9 | |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 745
| Zitat:
Basti | |
| | |
| | Nach oben #10 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.550
| der Datensatz soll auf jeden Fall unverändert bleiben! Ich bin zuversichtlich, dass eine der drei Möglichkeiten hinreichend zum Ziel führen wird.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw. Danke! |
| | |
| | Nach oben #11 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.049
| das kann man im query verändern, ich denke das meint Basti |
| | |
| | Nach oben #12 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.550
| Um dieses Thema nochmals aufzugreifen. Derzeit sieht das bei mir so aus: PHP-Code: Nur sortiert er leider die Geburtstages des Januar nun vor die Geburtstage, die im Rest dieses Jahres kommen. Hat jemand eine Idee, wie ich das unterbinden kann? Die falsche Reihenfolge gibt es dann zwar nur für 2 Wochen im Jahr, aber schön wäre ja schon, wenn es richtig wäre... Nachtrag: Mir ist klar, dass ich da nur bei dem ORDER BY month eine Unterscheidung einbauen muss, die dann entweder DESC oder ASC sortiert... Nur ich bekomme das if(..) gerade nicht auf die Reihe.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw. Danke! Geändert von Jann Hendrik (22.12.2007 um 15:24 Uhr). |
| | |
| | Nach oben #13 |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 490
| Wie wäre es mit ORDER BY `gtag`?
__________________ Weißt Bescheid - Scheiß wie weit |
| | |
| | Nach oben #14 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.550
| dann würde als erstes das Jahr berücksichtigt - und somit wäre das nicht das gewünschte Ergebnis! Ich dachte an sowas: PHP-Code:
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw. Danke! Geändert von Jann Hendrik (22.12.2007 um 16:20 Uhr). |
| | |
| | Nach oben #15 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.550
| darüber hinaus ist noch ein bug in dieser Zeile: Code: EXTRACT(YEAR FROM CURDATE()) - EXTRACT(YEAR FROM `gtag`) as jahre, Wollte das nur eben vermerken. Ich denke, das sollte aber kein Problem sein zu lösen, wenn das andere IF(...) läuft.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw. Danke! |
| | |
| | Nach oben #16 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.550
| Ich habe mich letztlich dafür entschieden die Sortierung über ASC bzw. DESC in PHP zu realisieren. Das sieht nun so aus: PHP-Code:
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw. Danke! |
| | |
| | Nach oben #17 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 745
| Damit bekommst du das hin: Code: SELECT
name,
birth,
(YEAR(CURDATE())-YEAR(birth)) - (RIGHT(CURDATE(),5)<RIGHT(birth,5)) AS age,
DATE_ADD(birth, INTERVAL ((YEAR(CURDATE())-YEAR(birth)) - (RIGHT(SUBDATE(CURDATE(), 1),5)<RIGHT(birth,5)) + 1) YEAR) AS next_birthday
FROM
addresses
WHERE
DATE_ADD(birth, INTERVAL ((YEAR(CURDATE())-YEAR(birth)) - (RIGHT(SUBDATE(CURDATE(), 1),5)<RIGHT(birth,5)) + 1) YEAR) BETWEEN CURDATE() AND ADDDATE(CURDATE(), 30)
ORDER BY
next_birthday Mich wundert, warum next_birthday in der WHERE-Klausel nicht benutzt werden kann. So hab ich die Berechnung jetzt doppelt drinnen und die Berechnung des Alters gar dreimal. Im MySQL-Handbuch findest du in den Kommentaren auch noch eine Lösung: http://dev.mysql.com/doc/refman/5.0/...culations.html Basti Geändert von Basti (02.01.2008 um 12:36 Uhr). |
| | |
| | Nach oben #18 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.550
| Ich kann es gerade nicht testen, da meine Internetseit - und somit auch die db und pma down ist. Werde ich aber nachholen!
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw. Danke! |
| | |
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| query umschreiben | nibblas | Datenbanken | 5 | |







