mysql日期类型 date,datetime,timestamp
一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS,例如2018-09-23 09:18:23
date类型只能存年月日,不能存时分秒。
Datetime和timestamp都可以表示YYYY-MM-DD HH:MM:SS
- 两者的存储方式不一样
对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。
查询时,将其又转化为客户端当前时区进行返回。
而对于DATETIME,不做任何改变,基本上是原样输入和输出。
timestamp所能存储的时间范围为:‘1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。
datetime所能存储的时间范围为:‘1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。
总结:TIMESTAMP和DATETIME除了存储范围和存储方式不一样,没有太大区别
。当然,对于跨时区的业务,TIMESTAMP更为合适。
Datetime占用8个字节, timestamp占用4个字节
int
- 占用4个字节
- 建立索引之后,查询速度快
- 条件范围搜索可以使用使用between4. 不能使用mysql提供的时间函数结论:适合需要进行大量时间范围查询的数据表
因此我们常常用于将时间戳存入int类型的字段,
然后用php的date函数格式化输出。
date(‘Y-m-d H:i:s’,time());