Willkommen in der Webstatt Zum Webstatt Blog und Stories
Thiemm Thiemm am 14.03.06 16:03

Hi,

wie lautet der Spaltentyp, um einen Timestamp einzutragen?

Ich habe es mit TIMESTAMP versucht (liegt ja nahe), aber ich bekomme ein ausführliches Datum mit Uhrzeit:
YYYY-MM-DD HH:MM:SS.
Bei "Standard" habe ich übrigens CURRENT_TIMESTAMP aktiviert.

Gruss

netcup.de Warum gibt es hier Werbung?
Christian am 14.03.06 16:04

afaik int(11)

mach ich zumindest :I

Thiemm Thiemm am 14.03.06 16:07

Jo, das wäre die Notlösung.
Allerdings habe ich gehofft, dass es einen Spaltentyp gibt, wo ich dann die Timestamp-Spalte nicht im INSERT-Query aufführen muss :rolleyes:

Michael Michael am 14.03.06 16:13

Der Vorteil des Timestamp Typs ist, dass das erste Timestamp Feld einer Reihe bei einer Änderung automatisch auf NOW() gesetzt wird.
Ansonsten kannst du bei der SELECT Abfrage einfach UNIX_TIMESTAMP(datumsfeld) datumsfeld benutzen, so gibts einen UNIX Timestamp.
Allerdings: Wofür braucht man einen Timestamp. Meisstens kann man das eleganter in MySQL mit MySQL Datums-Datentypen regeln.

phore phore am 14.03.06 16:13

hallo.
einfacher gehts mit sql NOW(), dazu muss das db feld auf DATE oder DATETIME sein.

beispiel:

<?
$insert = "INSERT INTO `table` (`date`) VALUES (NOW())";
mysql_query($insert);
?>


dann kannst du auch mit dem datum als "eigentliches" datum "arbeiten" und nicht nur als wert.

so long - phore
/edit - war zu langsam :)

Thiemm Thiemm am 14.03.06 16:15

Quote
Original von Michael
Der Vorteil des Timestamp Typs ist, dass das erste Timestamp Feld einer Reihe bei einer Änderung automatisch auf NOW() gesetzt wird.
Ansonsten kannst du bei der SELECT Abfrage einfach UNIX_TIMESTAMP(datumsfeld) datumsfeld benutzen, so gibts einen UNIX Timestamp.
Allerdings: Wofür braucht man einen Timestamp. Meisstens kann man das eleganter in MySQL mit MySQL Datums-Datentypen regeln.

Es geht darum, alle Datensätze, die älter als 24 Std. sind zu löschen.
Habe es erstmal so gelöst:
$deltime = time() - 60 * 60 * 24;
$mysql->query("DELETE FROM `ip` WHERE `time` < '$deltime'");

Michael Michael am 14.03.06 16:18

Das geht mit DATETIME viel einfacher

DELETE FROM tabelle WHERE datumsfeld<NOW() - INTERVAL 1 HOUR

Thiemm Thiemm am 14.03.06 17:19

Danke :)

sebastian am 14.03.06 18:08

ja also ein unix timestamp ist in jeder hinsicht vorzuziehen...

wie schon gesagt wurde.. in mysql int und nicht timestamp benutzen und per php den timestamp erzeugen und dann als integer speichern^^

milahu milahu am 14.03.06 18:12

Quote
Original von sebastian
ja also ein unix timestamp ist in jeder hinsicht vorzuziehen...

Hö? Die Datums-Typen in mySQL gibt's schließlich nicht zum Spaß. Oder?

Michael Michael am 14.03.06 18:17

Quote
Original von sebastian
ja also ein unix timestamp ist in jeder hinsicht vorzuziehen...


So ein Scheiß.
Man sieht du hast dich eingehend mit der Thematik beschäftigt und den Durchblick schlechthin... *kopfschüttel*

sebastian am 14.03.06 18:37

nenn mir einen vorteil?

also ich find unix timestamps in jeder hinsicht umgänglicher

Sven Sven am 14.03.06 18:44

Gegenfrage : Was ist toll an Timestamps?

milahu milahu am 14.03.06 18:53

Quote
Original von Sven
Gegenfrage : Was ist toll an Timestamps?

Sie lassen sich in ein paar Jahren nicht mehr mit 32 Bits darstellen :P

Sven Sven am 14.03.06 18:59

Überzeugt, ab jetzt nutze ich wieder Timestamps!

sili sili am 14.03.06 19:02

im Jex-Treme Forum gab es da einmal eine Diskussion dazu :]
http://www.jex-treme.de/forum/thread.php?threadid=19892

Michael Michael am 14.03.06 19:16

Quote
Original von sebastian
nenn mir einen vorteil?

also ich find unix timestamps in jeder hinsicht umgänglicher


Lies mal meine Beiträge in dem von Sili verlinkten Beitrag. Ich habe dies meiner Meinung nach recht ausführlich dargelegt.

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt