Ergebnis 1 bis 6 von 6

Thema: Problem: Datum nach "Monat, Tag" sortieren

  1. #1
    Contao-Nutzer Avatar von althoffc
    Registriert seit
    24.06.2009.
    Beiträge
    125

    Standard Problem: Datum nach "Monat, Tag" sortieren

    Hallo,

    mir ist das Feld "dateOfBirth" in der Tabelle "tl_member" nicht ganz geheuer.

    Mein Ziel:
    Eine nach Monat, Tag sortierte Geburtstagsliste unserer Vereinsmitglieder.

    Habe dazu ein Auflistungs-Modul erstellt mit dem ich auf die tl_member zugreife.
    Die Sortierung erfolgt mit "month(from_unixtime(dateOfBirth)),day(from_unixti me(dateOfBirth)),lastname,firstname".

    Die Sortierung erfolgt korrekt für Datumswerte ab dem 01.01.1970. Alle älteren Datumswerte werden nicht sortiert bzw.
    die Funktionen month() bzw. day() ergeben dann ungültige Funktionswerte. (Sortierung erfolgt dann nach lastname, firstname.)

    Wie kann ich die gewünschte Sortierung über den kompletten Wertebereich erreichen?


    Warum werden einige "Datumsfelder" (z.B. dateOfBirth) als varchar (11) angelegt, wenn offensichtlich Integer-Werte in dem Feld gespeichert werden?
    Warum wird bei anderen "Datumsfeldern" Integer(10) als Feldtyp verwendet und nicht der Feldtyp (date)?


    Gruß
    Carsten
    Albert Einstein: Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.

  2. #2
    Contao-Fan Avatar von webster
    Registriert seit
    14.09.2010.
    Ort
    Kiel
    Beiträge
    460

    Standard

    Hallo Carsten,

    probiers mal so:

    PHP-Code:
    MONTH(DATE_ADD(FROM_UNIXTIME(0), INTERVAL dateOfBirth SECOND)) AS MONTH 
    dateOfBirth kann positiv oder negativ sein und wird dann mittels DATE_ADD dem FROM_UNIXTIME(0) hinzugerechnet, bzw. bei negativen Werten für dateOfBirth abgezogen.
    Was ist das? - Blaues Licht - Und was macht es? - Es leuchtet blau...

  3. #3
    Contao-Nutzer Avatar von althoffc
    Registriert seit
    24.06.2009.
    Beiträge
    125

    Standard

    hallo webster,

    vielen Dank für den Tipp!!

    Es funktioniert jetzt wie gewünscht.
    Habe den Ausdruck analog mit day(....) in der Sortierung verwendet. Jetzt werden alle Geburtstagsdaten (negativer als auch positiver unixtime-Wert) wie gewünscht sortiert.

    Vielen Dank und Gruß
    Carsten
    Albert Einstein: Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.

  4. #4
    Contao-Nutzer
    Registriert seit
    18.12.2010.
    Ort
    Mühltal
    Beiträge
    42

    Standard

    Danke, dieser Tip hat mir auch sehr weiter geholfen.

    Eine Frage dazu habe ich allerdings noch. Die Liste wird wie gewünscht angezeigt, allerdings wird der Feldnamen als month(date_add(from_unixtime(0), interval dateOfBirth second)) in der Liste ausgegeben. Kann ich das irgendwie ändern?

    VG

    Eckhard

  5. #5
    Contao-Nutzer Avatar von althoffc
    Registriert seit
    24.06.2009.
    Beiträge
    125

    Standard

    Hallo diversworld,

    ich habe bei mir folgende Einstellungen (in einem Auflistungsmodul) verwendet:

    Tabelle: tl_member
    Felder: firstname,lastname,dateOfBirth,street,postal,city
    Bedingung:
    Durchsuchbare Felder: lastname,firstname,email
    Sortierung nach: MONTH(DATE_ADD(FROM_UNIXTIME(0), INTERVAL dateOfBirth SECOND)),day(DATE_ADD(FROM_UNIXTIME(0), INTERVAL dateOfBirth SECOND)),lastname,firstname

    Mit diesen Einstellungen wird die Spalte "dateOfBirth" als Geburtstag angezeigt. Die Sortierkriterien (Tag, Monat, Jahr) werden dann gar nicht als Spaltenüberschrift angezeigt.

    Gruß
    Carsten
    Geändert von althoffc (24.08.2012 um 17:32 Uhr)
    Albert Einstein: Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.

  6. #6
    Contao-Nutzer
    Registriert seit
    18.12.2010.
    Ort
    Mühltal
    Beiträge
    42

    Standard

    Super vielen Dank.

    Manchmal sieht man den Wald vor lauter Bäumen nicht.


    Gruß Eckhard

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •