我通过phpMyAdmin创建了一些MySQL表。然后我注意到在表定义中,某些TIMESTAMP
列具有附加值:
timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
这是什么意思,我应该使用什么值?
答案 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对
TIME
,DATETIME
和TIMESTAMP
值,精度最高为微秒(6位数字):要定义包含小数秒部分的列,请使用语法 type_name(fsp) ,其中 type_name 是
TIME
,DATETIME
或TIMESTAMP
和 fsp 是小数秒精度。例如:CREATE TABLE t1 (t TIME(3), dt DATETIME(6));
fsp 值(如果提供)必须在0到6的范围内。值0 表示没有小数部分。如果省略,则默认 精度为0。(这与标准SQL默认值6不同,因为 与以前的MySQL版本兼容。)
因此,要定义亚秒级精度的时间戳列,您必须指定一个非零值。