MySQL 时间类型 DATE、DATETIME和TIMESTAMP

MySQL 时间类型 DATE、DATETIME和TIMESTAMP

 

1.DATE、DATETIME和TIMESTAMP 表达的时间范围

Type Range Remark
DATE '1000-01-01' to '9999-12-31' 只有日期部分,没有时间部分
DATETIME '1000-01-01 00:00:00' to '9999-12-31 23:59:59' 时间格式为 YYYY-MM-DD hh:mm:ss,默认精确到秒
TIMESTAMP  '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07'UTC 默认精确到秒

2.DATETIME和TIMESTAMP 最大时间精确度

5.7 之后的版本(其实应该说5.6.5),在默认的秒精确度上,可以带小数,最多带6位小数,即可以精确到 microseconds (6 digits) precision。

Type  Range  Remark
DATETIME '1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999' 'YYYY-MM-DD hh:mm:ss[.fraction]'
TIMESTAMP '1970-01-01 00:00:01.000000' to '2038-01-19 03:14:07.999999' 'YYYY-MM-DD hh:mm:ss[.fraction]'

 

3.DATETIME和TIMESTAMP 区别

(1) 时间范围不一样,TIMESTAMP 要小很多 ,且最大范围为2038-01-19 03:14:07.999999,到期也不远了。

(2)对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

posted on 2019-05-24 10:47  mmzz3322  阅读(198)  评论(0编辑  收藏  举报

导航