Willkommen in der Webstatt
User-1 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?
User-2 am 14.03.06 16:04

afaik int(11)

mach ich zumindest :I

User-1 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:

User-3 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.

User-4 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 - xyz-169
/edit - war zu langsam :)

User-1 am 14.03.06 16:15

Quote
Original von xyz-141el
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'");

User-3 am 14.03.06 16:18

Das geht mit DATETIME viel einfacher

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

User-1 am 14.03.06 17:19

xyz-48ke :)

User-5 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^^

User-6 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?

User-3 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*

User-5 am 14.03.06 18:37

nenn mir einen vorteil?

also ich find unix timestamps in jeder hinsicht umgänglicher

User-7 am 14.03.06 18:44

Gegenfrage : Was ist toll an Timestamps?

User-6 am 14.03.06 18:53

Quote
Original von xyz-207
Gegenfrage : Was ist toll an Timestamps?

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

User-7 am 14.03.06 18:59

Überzeugt, ab jetzt nutze ich wieder Timestamps!

User-8 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

User-3 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