列定义中TIMESTAMP之后的值是什么意思?

时间:2019-06-06 06:58:33

标签: mysql timestamp

我通过phpMyAdmin创建了一些MySQL表。然后我注意到在表定义中,某些TIMESTAMP列具有附加值:

timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)

这是什么意思,我应该使用什么值?

2 个答案:

答案 0 :(得分:0)

此语法用于小数秒精度,请参见参考手册:

https://dev.mysql.com/doc/refman/8.0/en/fractional-seconds.html

MySQL 8.0支持TIME,DATETIME和TIMESTAMP值的小数秒支持,精度高达微秒(6位数)

答案 1 :(得分:0)

类型后的值定义小数秒部分。引用documentation

  

MySQL 8.0对TIMEDATETIME和   TIMESTAMP值,精度最高为微秒(6位数字):

     

要定义包含小数秒部分的列,请使用语法 type_name(fsp) ,其中 type_name TIMEDATETIME或   TIMESTAMP fsp 是小数秒精度。例如:

CREATE TABLE t1 (t TIME(3), dt DATETIME(6));
     

fsp 值(如果提供)必须在0到6的范围内。值0   表示没有小数部分。如果省略,则默认   精度为0。(这与标准SQL默认值6不同,因为   与以前的MySQL版本兼容。)

因此,要定义亚秒级精度的时间戳列,您必须指定一个非零值。