电光石火电光石火

陌晴博客
ilkhome.cn

Mysql的timestamp改datetime

相同点:

可自动更新和初始化,默认显示格式相同YYYY-MM-dd HH:mm:ss

不同点:

1. timestamp的时间范围是:'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC ,自动时区转化,实际存储毫秒数,4字节存储

2. datetime的时间范围:'1000-01-01 00:00:00' to '9999-12-31 23:59:59' ,不支持时区,8字节存储

如果不需要考虑时区问题,直接用 datatime类型替换 timestamp,替换的思路:

1. 修改原来字段的名字;

ALTER TABLE `student` CHANGE `create_time` `temp_create_time` timestamp NOT NULL default '0000-00-00 00:00:00';

2. 新建一个 datatime类型的字段(新建一列,用来替换原来的);

ALTER TABLE `student` ADD `create_time` DATETIME NOT NULL default '0000-00-00 00:00:00';

3. 将原来字段列的数据拷贝到新的字段列中;

UPDATE `student` SET `create_time` = `temp_create_time`;

4. 删除原来的列;

ALTER TABLE `student` DROP `temp_create_time`;

5. 完整sql 如下:(需要注意,原来的 timestamp的默认值,这个也需要加上)

ALTER TABLE `student` CHANGE `create_time` `temp_create_time` timestamp NOT NULL default '0000-00-00 00:00:00';

ALTER TABLE `student` ADD `create_time` DATETIME NOT NULL default '0000-00-00 00:00:00';

UPDATE `student` SET `create_time` = `temp_create_time`;

ALTER TABLE `student` DROP `temp_create_time`;
本博客所有文章如无特别注明均为原创。作者:似水的流年
版权所有:《电光石火》 => Mysql的timestamp改datetime
本文地址:http://www.ilkhome.cn/index.php/archives/799/
欢迎转载!复制或转载请以超链接形式注明,文章为 似水的流年 原创,并注明原文地址 Mysql的timestamp改datetime,谢谢。

评论