5.7 之后的版本(其实应该说5.6.5),在默认的秒精确度上,可以带小数,最多带6位小数,即可以精确到 microseconds (6 digits) precision。
可能上面的几句英文不好理解,我们举个例子。
创建2张测试表:
向这两个测试表中分别插入一笔测试数据
查看这种显示的时区时间设置
查询命令
上述“CST”指的是MySQL所在主机的系统时间,是中国标准时间的缩写,China Standard Time UT+8:00
修改time_zone
通过结果可以看出,testtime中返回的时间提前了8个小时,而testtime1中时间则不变。
如果新建一个客户端连接,这个时区的修改不影响新连接。
TIMESTAMP 在mysql 5.6.5之后,TIMESTAMP(fraction
)中的fraction
代表的是小数位数,即默认秒,以秒为单位的小数点位数。 up to microseconds (6 digits) precision,最大为6.
超过6则报错:
在比较久的版本上,这个数字就代表不同的意义,以下内容为旧版本的关于TIMESTAMP的知识。
TIMESTAMP(fraction
)中fraction
值显示尺寸的格式如下表所示:
就版本中“完整”TIMESTAMP格式是14位,但TIMESTAMP列也可以用更短的显示尺寸,创造最常见的显示尺寸是6、8、12、和14。
在创建表时可以指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14。列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数。