MySQL中关于时间那些事儿

首先明确几个时间概念:
UTC时间 · GMT时间 · CST时间

  • UTC
    协调世界时间,由原子钟报时,目前的主要世界时间标准。因为是原子钟,所以准确性不用多说。
  • GMT
    格林威治标准时间,英国格林威治天文台的时间,现代科学发源时期定义的世界标准时间,现已被更准确的UTC取代,大多数情况下两者可等同。
  • CST
    China Standard Time。中国标准时间,也就是北京时间,不用解释。

TIMESTAMP字段和DATETIME字段区别

首先明确时间概念后现在就可以很清晰的说明两者区别了。

1> 两者的存储方式不一样

对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC时间进行存储。查询时,将其又转化为客户端当前时区进行返回。

而对于DATETIME,不做任何改变,基本上是原样输入和输出。

举个栗子,我们插入一条时间数据,timestamp和datetime字段显示结果一样,但是如果更改系统时区,datetime显示结果不变,而timestamp会变。

2> 两者所能存储的时间范围不一样

timestamp所能存储的时间范围为:'1970-01-01 00:00:01' 到 '2038-01-19 03:14:07'。
datetime所能存储的时间范围为:'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'。
datetime范围更大。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容