通常存储时间用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