mysql - 列定义中 TIMESTAMP 之后的值是什么意思?
问题描述
我通过 phpMyAdmin 创建了一些 MySQL 表。然后我注意到在表定义中有些TIMESTAMP
列附加了一个值:
timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
这是什么意思,我应该使用什么值?
解决方案
类型后面的值定义小数秒部分。引用文档:
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 版本兼容。)
因此,要定义具有亚秒精度的时间戳列,您必须指定一个非零值。
推荐阅读
- rest - 使用 Spoke of Integration Hub 设置 DocuSign 与 ServiceNow 集成的问题
- java - 即使 $JAVA_HOME 似乎设置正确,也找不到使用 maven 的 javadoc 可执行文件
- c# - 图像在 Visual Studio 上通过 IIS Express 运行时可以加载,但在 IIS 上运行时无法加载
- php - 检查会话 id 是否等于特定值
- css - 防止图像超出窗口大小
- docker - 无法访问 docker 容器外的 kafka
- laravel - 解决方案:预期响应代码 250,但得到代码“530”,消息“530 5.71 需要身份验证”
- javascript - 如何在nodejs上的.env中设置变量
- google-bigquery - 如何使用 bq ls 命令行工具按时长排序
- javascript - 将新数组而不是数组文字传递给 useState 显示空数组