日期时间和时间戳长度/值错误

9
我之前用了int类型存储日期时间数据,后来为了方便从MySQL中获取特定范围的数据,尝试将其更改为TIMESTAMP/DATETIME类型,但无论哪种情况都会出现如附图所示的错误。数据类型TIMESTAMP/DATETIME的格式为YYYY-MM-DD HH:MM:SS,长度为19个字符。
我找不到合适的教程或文章来了解这个错误/问题。 错误图片

2
不要总是被教程绊住。直接在官方文档中阅读这样的资料更有意义。http://dev.mysql.com/doc/refman/5.7/en/date-and-time-type-overview.html - CBroe
所以限制6表示它是分数值?我猜如果用YYYY-MM-DD HH:MM:SS来填充数据库,我会得到结果。感谢您指出这个关键点关于这种数据类型,尽管我已经浏览了http://dev.mysql.com/上的文章。 - Vishal Kumar Sahu
1个回答

13
在定义DATETIME或TIMESTAMP字段时,无需指定长度。
这就是错误信息所指的:
DATETIME或TIMESTAMP值可以包括高达微秒(6位数字)精度的尾数部分。MySQL允许TIME、DATETIME和TIMESTAMP值具有小数秒,精度高达微秒(6位数字)。要定义包含小数秒部分的列,请使用语法type_name(fsp),其中type_name是TIME、DATETIME或TIMESTAMP,fsp是小数秒精度。例如:
CREATE TABLE t1 (t TIME(3), dt DATETIME(6));

摘自创建表语法

| TIME[(fsp)]
| TIMESTAMP[(fsp)]
| DATETIME[(fsp)]

文档:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接