将现有MySQL数据更改为时间戳

时间:2013-10-31 16:03:34

标签: mysql

在我的数据库中,我有一个名为 date 的列。目前,该列包含以下格式的日期:

  

日/月/年

我可以运行什么来将其转换为unix时间戳吗?即。

01/07/2003成为1057017600

大约有20,000行历史数据,我需要能够通过MySQL本身来做到这一点。

我尝试过以下操作,但由于日期列的格式错误,因此无效

UPDATE wl_daily
SET
   newdate = UNIX_TIMESTAMP(date)

1 个答案:

答案 0 :(得分:2)

你可以创建一个新列(假设我们称之为newdate),用你的olddate列填充它,删除旧列并重命名newdate。

ALTER TABLE  `mytable` ADD  `newdate` TIMESTAMP NOT NULL ;
UPDATE `mytable` set newdate=UNIX_TIMESTAMP( STR_TO_DATE(olddate,  '%d/%m/%Y' ) );
ALTER TABLE `mytable` DROP `olddate`;
ALTER TABLE  `mytable` CHANGE  `newdate`  `olddate` TIMESTAMP NOT NULL ;