hilfdirselbst.ch
Facebook Twitter gamper-media
Anonym
Beiträge: 22827
19. Aug 2002, 15:49
Beitrag #1 von 9
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Timestamp in einer MySQL-Datenbank


Hallo Leute!

Ich hab ein Problem mit einer MySQL-Datenbank: In einer Spalte(einer Tabelle) werden dort Zeiten im UNIX-Timestamp-Format gespeichert, d.h. eine Eingabe wie 1.12.1979 wird als 312850800 o.ä. abgespeichert. Das hat für mich den Vorteil, dass ich die Tabellenausgabe auch zeitlich sortiert ausgeben kann... leider funktioniert jetzt aber meine Suchfunktion nicht mehr: Wie kann ich es bei dieser Datenbank jetzt hinkriegen, dass ich z.B. alle Datensätze finde, die 1979 waren oder am 12. usw. Eine Lösung, die mir durch den Kopf geht, ist, eine extra Spalte einzurichten, wo ich das Datum im Format tag.monat.jahr (1.12.1979) abspeichere und dort halt die Suchfunktion verwende, aber das erscheint mir nicht so elegant...

Gibt es eine einfachere Variante?

Vielen Dank im Voraus für die Hilfe... Top
 
X
Ollli
Beiträge: 458
19. Aug 2002, 17:06
Beitrag #2 von 9
Beitrag ID: #9498
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Timestamp in einer MySQL-Datenbank


Also du kannst ein ganz normales Datum verwenden, sprich Date oder DateTime und kannst dass immer noch nach Zeit sortieren lassen.

Ich weiß nicht ob das jetzt technisch einwandfrei ist und kann dir nur aus Erfahrung sagen, dass das Datum einfach zu einer Zahl "zusammengezogen" wird und dann einfach als Zahl sortiert wird.

Jedenfalls funzt das bei mir immer so

Ollli
als Antwort auf: [#9494] Top
 
Anonym
Beiträge: 22827
20. Aug 2002, 08:12
Beitrag #3 von 9
Beitrag ID: #9550
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Timestamp in einer MySQL-Datenbank


Danke für die Antwort, aber könntest du etwas konkreter werden? Welchen "Typ" verwendest du denn für die Spalte mit dem Datum? und wie setzt du den Sortierbefehl ein...? Hast du vielleicht ein Beispiel parat?

Grüße, Patrick.
als Antwort auf: [#9494] Top
 
Ollli
Beiträge: 458
20. Aug 2002, 15:15
Beitrag #4 von 9
Beitrag ID: #9591
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Timestamp in einer MySQL-Datenbank


Als Typ verwende ich "DATE" oder "DATETIME"

ein Beispiel-Vergleich:

SELECT * FROM users ORDER BY geburtstag ASC;
listet alle User nach dem Geburtsdatum auf, welches vom Typ "DATE" sein sollte

SELECT * FROM users WHERE geburtstag=CURDATE() ORDER BY geburtszeit ASC;
listet alle Geburtstagskinder zum jeweiligen Tag auf und ordnet sie nach der Geburtszeit.

Reicht das?

Wenn nicht, einfach nochmal posten.

Ollli
als Antwort auf: [#9494] Top
 
Anonym
Beiträge: 22827
21. Aug 2002, 09:43
Beitrag #5 von 9
Beitrag ID: #9634
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Timestamp in einer MySQL-Datenbank


danke
ist also doch so einfach...
hmm, wenn die Spalte das Format bzw. den Typ DATE hat, wie müssen denn die Daten (Plural von Datum) eingegeben werden... ich hätte sie gerne im Format Tag.Monat.Jahr /30.1.1999 gespeichert

wie kriege ich das denn hin?
als Antwort auf: [#9494] Top
 
Frank
Beiträge: 12
21. Aug 2002, 14:06
Beitrag #6 von 9
Beitrag ID: #9654
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Timestamp in einer MySQL-Datenbank


In mySQL wird Immer im Format YYYY-MM-DD HH:MM gespeichert.
Willst du ein anderes format ausgeben, gibt es in SQL
verschiedene Befehle zum diese Ausgabe direkt zu
formatieren, weiter kann man dies auch nachträglich mit
PHP noch formen... (Einzelne Daten mit substr() auslesen
und anders wieder zusammensetzen)

GR: MDi

als Antwort auf: [#9494] Top
 
Ollli
Beiträge: 458
21. Aug 2002, 17:48
Beitrag #7 von 9
Beitrag ID: #9681
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Timestamp in einer MySQL-Datenbank


schau dir mal die Funktion date_format() von MySQL an, dort kannste dein Datum formatieren wie du willst.

Ollli
als Antwort auf: [#9494] Top
 
webgrauen
Beiträge: 20
21. Aug 2002, 17:54
Beitrag #8 von 9
Beitrag ID: #9683
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Timestamp in einer MySQL-Datenbank


Ich würde den Timestamp ruhig in die DB schreiben, den brauchst du nicht vorher in ein Datum umzuwandeln.


Beispiel: Auslesen des Timestamp:

$meine_query="SELECT mein_datum FROM meine_tabelle";
$meine_query_result=mysql_query($meine_query);
while($data=mysql_fetch_array($meine_query_result))
{
$data[mein_datum]=date("d-M-Y", $data[mein_datum]);
echo "$data[mein_datum]";
}


als Antwort auf: [#9494] Top
 
Anonym
Beiträge: 22827
22. Aug 2002, 08:46
Beitrag #9 von 9
Beitrag ID: #9729
Bewertung:
(1449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Timestamp in einer MySQL-Datenbank


danke für eure Hilfe...

@webgrauen: für eine große Datenbank aber nicht unbedingt empfehlenswert, gell?
als Antwort auf: [#9494] Top
 
X