mysql - 将datetime列转换为时间戳

时间:2013-09-22 07:54:11

标签: mysql datetime

我正在尝试将数据库的datetime列转换为时间戳,而不会丢失数据。我按照这个答案: Bulk convert and update datetime column values to UNIX timestamp?

但是当我想:

UPDATE `members` SET `new_join_date` = UNIX_TIMESTAMP(`join_date`), `new_last_visit` = UNIX_TIMESTAMP(`last_visit`);

我收到此错误:

#1292 - Incorrect datetime value: '1376833381' for column 'new_join_date' at row 1

完整转换查询:

ALTER TABLE `members`
ADD COLUMN `new_join_date` TIMESTAMP NULL AFTER `join_date`,
ADD COLUMN `new_last_visit` TIMESTAMP NULL AFTER `last_visit`;

UPDATE `members`
SET `new_join_date` = UNIX_TIMESTAMP(`join_date`),
`new_last_visit` = UNIX_TIMESTAMP(`last_visit`);

ALTER TABLE `members` DROP `join_date`;

ALTER TABLE `members` DROP `last_visit`;

ALTER TABLE `members` CHANGE `new_join_date` `join_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

ALTER TABLE `members` CHANGE `new_last_visit` `last_visit` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

1 个答案:

答案 0 :(得分:0)

MySQL TIMESTAMPUNIX_TIMESTAMP的类型不同!

您声明new_join_datenew_last_visit属于TIMESTAMP类型,然后尝试将其设置为其他类型,因此错误。

要解决此问题,您应将这些列声明为INT(11)