mysql时间属性之时间戳和datetime之间的转换


一、datetime转换为时间戳


    方案一:强制转换字段类型


     


1 use`nec`;

2 SET SQL_SAFE_UPDATES=0;

3 ALTER TABLE `usr_user_info` CHANGE COLUMN `registerTime` `registerTime` BIGINT(20) NOT NULL COMMENT '注册时间' ,

4 ALTER TABLE `usr_user_info` CHANGE COLUMN `lastLoginTime` `lastLoginTime` BIGINT(20) NULL DEFAULT NULL COMMENT '最后登录时间' ;

5 UPDATE `usr_user_info` SET  `lastLoginTime` = unix_timestamp(`lastLoginTime`);

6 UPDATE `usr_user_info` SET  `registerTime` = unix_timestamp(`registerTime`);

 


    方案二:增加临时列


           


 1 --

 2 -- table alter for usr_user_info

 3 --

 4 /*增加字段*/

 5 use `nec`;

 6 ALTER TABLE `usr_user_info` ADD COLUMN tempRegisterTime BIGINT(20) NULL ;

 7 ALTER TABLE `usr_user_info`  ADD COLUMN tempLastLoginTime BIGINT(20) NULL ;

 8 

 9 /*进行时间转化,并复制列*/

10 UPDATE  usr_user_info SET tempRegisterTime=unix_timestamp(registerTime);

11 UPDATE  usr_user_info SET tempLastLoginTime=unix_timestamp(lastLoginTime);

12 

13 /*删除原有字段*/

14 ALTER TABLE usr_user_info

15     DROP registerTime,DROP lastLoginTime;

16 

17 /*更新临时字段名称*/

18 ALTER TABLE usr_user_info CHANGE tempRegisterTime registerTime BIGINT(20) NOT NULL  COMMENT '注册时间';

19 ALTER TABLE usr_user_info CHANGE tempLastLoginTime lastLoginTime BIGINT(20)  COMMENT '最近登录时间';

二、时间戳转换成datetime


     这个谷歌一堆教程,主要涉及'FROM_UNIXTIME(registerTime )'这个转换函数,不仔细详述了