Conversion de la colonne mysql d'INT en TIMESTAMP

Quand j'étais jeune et stupide a eu peu d'experiance, j'ai décidé que ce serait une bonne idée, pour générer des horodateurs en PHP et de les stocker dans INT colonne dans mon MySQL table innodb. Maintenant, lors de cette table possède des millions de disques et a besoin d'une date en fonction des requêtes, il est temps de convertir cette colonne pour TIMESTAMP. Comment puis-je faire cela?

A ce stade, ma table ressemble à ceci:

id (INT) | message (TEXT) | date_sent (INT)
---------------------------------------------
1        | hello?         | 1328287526
2        | how are you?   | 1328287456
3        | shut up        | 1328234234
4        | ok             | 1328678978
5        | are you...     | 1328345324

Voici les requêtes je suis venu avec, pour convertir date_sent colonne de TIMESTAMP:

-- creating new column of TIMESTAMP type
ALTER TABLE `pm`
  ADD COLUMN `date_sent2` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP();

-- assigning value from old INT column to it, in hope that it will be recognized as timestamp
UPDATE `pm` SET `date_sent2` = `date_sent`;

-- dropping the old INT column
ALTER TABLE `pm` DROP COLUMN `date_sent`;

-- changing the name of the column
ALTER TABLE `pm` CHANGE `date_sent2` `date_sent` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP();

Tout semble correct pour moi, mais quand vient le temps de la UPDATEpmSETdate_sent2=date_sent;je reçois un avertissement et d'horodatage valeur reste vide:

+---------+------+--------------------------------------------------+
| Level   | Code | Message                                          |
+---------+------+--------------------------------------------------+
| Warning | 1265 | Data truncated for column 'date_sent2' at row 1  |

Ce que je fais mal et est-il un moyen de résoudre ce problème?

source d'informationauteur Silver Light