tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    MM2410 MM2410 ist offline Mitglied MM2410 hat eine blütenweiße Weste
    Registriert seit
    Feb 2005
    Beiträge
    13
    Hallo,

    mich quält schon seit längerem ein Problem, ich finde dazu aber keine Lösung per Google oder hier im Forum.

    Ich arbeite mit MySQL und habe eine Tabelle in der verschiedene Ereignisse mit einem UNIX-Timestamp gespeichert sind.

    Nun möchte ich eine Ausgabe erzeugen, die mir alle Ereignisse mit aktuellem Datum zeigt, nur das Jahr soll keine Rolle spielen. Also "heute vor x Jahren"...

    Eine Beispiel, wie die Ausgabe aussehen könnte.

    23.11.1987 -> Ereignis 1
    23.11.1979 -> Ereignis 2

    ...

    Wie kann ich das in einer Abfrage in Verbindung mit PHP lösen?

    Danke für eure Hilfe!

  2. #2
    Benutzerbild von matdacat
    matdacat matdacat ist offline Mitglied Platin matdacat ist ein sehr geschätzer Mensch
    Registriert seit
    Aug 2004
    Beiträge
    669
    Ist ein bißchen Rechenaufwand und es gibt sicherlich verschiedene Möglichkeiten.
    Ein Ansatz:

    Sowohl für historischen als auch aktuellen Timestamp:
    Timestamp modulo (Sekunden pro Jahr) ergibt Sekunden seit 1.1.
    Dieser Wert ganzzahlig dividiert durch (Sekunden pro Tag) ergibt den Tag des Jahres.
    Die beiden dann vergleichen.

    Hm, ziemlich schnell hingetippt. Ausprobieren.

    edit: Auweh, da gibs ja noch Schaltjahre... ich nehm den Vorschlag zurück
    Geändert von matdacat (23.11.05 um 15:28 Uhr)

  3. #3
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Du kannst mit MySQL-Funktionen arbeiten:
    Code :
    1
    2
    3
    4
    5
    6
    
    select
      from_unixtime(`tsFeld`) as `datum`
      year(now())-year(from_unixtime(`tsFeld`)) as `jahreVorher`
    from tabelle
    where dayofmonth(now())=dayofmonth(from_unixtime(`tsFeld`))
      and month(now())=month(from_unixtime(`tsFeld`))
    Der Code hat möglicherweise ein paar kleinere Fehler, da ich ihn nicht getestet, sondern hier im Editor getippt habe.

    Mehr bei den Datums- und Zeitfunktionen

    Gruß hpvw
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  4. #4
    MM2410 MM2410 ist offline Mitglied MM2410 hat eine blütenweiße Weste
    Registriert seit
    Feb 2005
    Beiträge
    13
    Mir ist grad was eingefallen.
    Ich könnte mir ja alle Ereignisse der Tabelle (ca. 800) in ein normales Format umrechnen lassen. (zb. DD.MM.JJJJ) und das dann mit dem heutigen Datum vergleichen. (23.11.2005).

    Bloß, ist das net zuviel Rechenaufwand für Inet?

  5. #5
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Zitat Zitat von MM2410
    Mir ist grad was eingefallen.
    Ich könnte mir ja alle Ereignisse der Tabelle (ca. 800) in ein normales Format umrechnen lassen. (zb. DD.MM.JJJJ) und das dann mit dem heutigen Datum vergleichen. (23.11.2005).

    Bloß, ist das net zuviel Rechenaufwand für Inet?
    Das ist für Maschinenverarbeitung so ziemlich das "unnormalste" Format, dass ich mir vorstellen kann.

    Gruß hpvw

    PS: Was gefällt Dir an dem Query oben nicht? Ich habe es eben getestet und es funktioniert, zumindest, wenn ich Dein Problem richtig verstanden habe.
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  6. #6
    MM2410 MM2410 ist offline Mitglied MM2410 hat eine blütenweiße Weste
    Registriert seit
    Feb 2005
    Beiträge
    13
    Jo, Danke an euch alle.
    Es funktioniert perfekt.

    Ich hatte das Post oben gerade geschrieben, als die Lösung gepostet wurde!
    Deshlab habe ich das nich nicht gesehen.

    Danke!

Ähnliche Themen

  1. Datum in Tag, Monat, Jahr teilen?
    Von Jacizzle im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 24.08.05, 10:20
  2. Datum nach Timestamp konvertieren
    Von dwex im Forum PHP
    Antworten: 1
    Letzter Beitrag: 17.08.05, 13:23
  3. Antworten: 1
    Letzter Beitrag: 21.02.05, 14:23
  4. Jahr und Tag von Datum abziehen
    Von flotschie im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 08.02.05, 11:44
  5. Antworten: 2
    Letzter Beitrag: 16.10.02, 13:26

Lesezeichen

Lesezeichen