首页 > 解决方案 > 列定义中 TIMESTAMP 之后的值是什么意思?

问题描述

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

timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)

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

标签: mysqltimestamp

解决方案


类型后面的值定义小数秒部分。引用文档

MySQL 8.0 支持 、 和 值的小数秒TIMEDATETIME精度 TIMESTAMP高达微秒(6 位):

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

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

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

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


推荐阅读