通常存储时间用datetime类型,现在很多系统也用int存储时间,它们有什么区别?
int
1.4个字节存储,INT的长度是4个字节,存储空间上比datatime少,int索引存储空间也相对较小,排序和查询效率相对较高一点点
2.可读性极差,无法直观的看到数据,可能让你很恼火
TIMESTAMP
1.4个字节储存
2.值以UTC格式保存
3.时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区
4.TIMESTAMP值不能早于1970或晚于2037
datetime
1.8个字节储存
2.与时区无关
3.以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值。支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
php应用
在mysql 设计数据库的时候,在数据创建时间设计的时候,一般填写默认值'create_time' datetime DEFAULT CURRENT_TIMESTAMP,即:数据库默认当前时间
UNIX_TIMESTAMP将字符串转换成时间戳
SELECT UNIX_TIMESTAMP(create_time) FROM 'table' LIMIT 10
FROM_UNIXTIME将时间戳转换成字符串
SELECT FROM_UNIXTIME(create_time) FROM 'table' LIMIT 10