-
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!
-
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)
-
Du kannst mit MySQL-Funktionen arbeiten:
Der Code hat möglicherweise ein paar kleinere Fehler, da ich ihn nicht getestet, sondern hier im Editor getippt habe.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`))
Mehr bei den Datums- und Zeitfunktionen
Gruß hpvwWarum 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.
-
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.
Zitat von MM2410
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.
-
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
-
Datum in Tag, Monat, Jahr teilen?
Von Jacizzle im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 24.08.05, 10:20 -
Datum nach Timestamp konvertieren
Von dwex im Forum PHPAntworten: 1Letzter Beitrag: 17.08.05, 13:23 -
$tag $monat $jahr in TIMESTAMP umwandeln
Von gidde im Forum PHPAntworten: 1Letzter Beitrag: 21.02.05, 14:23 -
Jahr und Tag von Datum abziehen
Von flotschie im Forum .NET ArchivAntworten: 3Letzter Beitrag: 08.02.05, 11:44 -
Datum (in einem Jahr) - 36 Tage = Ausgabedatum
Von Sputnik im Forum PHPAntworten: 2Letzter Beitrag: 16.10.02, 13:26



Zitieren
Login





Lesezeichen