n'abend,
Eien Unix-Timestamp ist nicht das, was man in ein TIMESTAMP-Feld füllen will.
Der Unix-Timestamp (auch epoch genannt, Anzahl Sekunden seit 01.01.1970 00:00:00) ist eigentlich nichts was man in einer Datenbank speichern will. Der Timestamp (YYYY-MM-DD HH:MM:SS) braucht nicht mehr Speicherplatz, ist aber direkt mit den MySQL'schen Datumsfunktionen benutzbar. Und im Zweifelsfall via PhpMyAdmin (o.ä.) für Menschen lesbar. Datümser™ will man nicht als Integer speichern.
Unix-Timestamps passen aber sehr gut in unsigned INT (noch bis 2038) oder BIGINT rein.
Für Datums-Typen (Date, Datetime, Timestamp, ..) kann das DBMS automatisch Datumstransformationen durchführen. Für Integer eher nicht so.
CREATE TABLE IF NOT EXISTS `dateconv` (
`datum_field` varchar(50) NOT NULL COMMENT 'Datum als String "DD.MM.YYYY HH:MM:SS"',
`timestamp_field` timestamp NULL default NULL COMMENT 'Datum als Timestamp'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `dateconv` (`datum_field`, `timestamp_field`) VALUES
('13.10.2010 12:12:12', NULL),
('15.08.2010 02:03:04', NULL);
UPDATE dateconv SET timestamp_field = STR_TO_DATE(datum_field,'%d.%m.%Y %H:%i:%S');
weiterhin schönen abend...
--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|