今天使用了一下Mysql中的TIMESTAMP类型,以往保存时间都是使用整型的UNIX时间戳,而今天的表结构发生了变化,下面分享一下TIMESTAMP类型的基本使用方法。
字段:updatetime
类型:TIMESTAMP
长度:空
默认:CURRENT_TIMESTAMP
属性:on update CURRENT_TIMESTAMP
插入和更新时,不必填写该字段,因为属性为on update CURRENT_TIMESTAMP,MYSQL将在插入/更新时自动用当前时间进行填充,
数据格式如下:
2010-08-23 15:14:30
下面又要讨论如何导入数据了,将int(11)类型转换成TIMESTAMP类型,使用下面的SQL语句即可:
insert into target (`Name`,`updatetime`) select `Name`,date_add('1970-01-01 00:00:00', INTERVAL `timeline` SECOND) from A ;
上面这行SQL语句的作用是将源表A中的数据导入到target表,
注意了,int转TIMESTAMP类型使用了这个函数:
date_add('1970-01-01 00:00:00', INTERVAL `timeline` SECOND)
我们来看一下函数定义:
DATE_ADD(date,INTERVAL expr type) 函数向日期添加指定的时间间隔。
date
参数是合法的日期表达式。expr
参数是您希望添加的时间间隔。
本例中我们从UNIX纪元'1970-01-01 00:00:00'开始,计算到`timeline`为止的时间间隔(用秒SECOND为单位)。
`timeline`是源表A中的原始字段,int类型,表示写入记录的时间。
`updatetime`是目标表target中对应的时间字段,TIMESTAMP类型。
导入后的数据格式如下:
2010-06-30 09:07:12
好了。关于导入数据的技巧,请参见上次我写的文章:完整导入数据表时忽略主键的方法
http://blog.csdn.net/ciray/archive/2010/08/21/5828988.aspx