2016-07-31 61 views
1

我使用int类型来存储日期/时间。为了方便从MySQL获取特定范围的数据,我尝试将其更改为TIMESTAMP/DATETIME,但是它在两种情况下都会给出错误,如附图所示。数据类型TIMESTAMP/DATETIME的格式为YYYY-MM-DD HH:MM:SS,它的长度为19个字符。DATETIME和TIMESTAMP长度/值错误

我无法获得适当的教程/文章,因为我可以从头开始。

Error Image

+1

不要一直挂在教程上。直接在官方文档中直接阅读这些内容会更有意义。 http://dev.mysql.com/doc/refman/5.7/en/date-and-time-type-overview.html – CBroe

+0

所以限制6意味着它是分数值?我猜如果用'YYYY-MM-DD HH:MM:SS'喂养数据库,我会得到结果。感谢您指出这个关于这个数据类型的关键点,尽管我已经阅读了http://dev.mysql.com/上的文章。 –

回答

3

当定义一个DATETIME或时间戳字段,就没有必要指定长度。

这是该错误消息是指:

甲DATETIME或TIMESTAMP值可以高达微秒(6位)精度

MySQL的允许时间分数秒包括后分数秒部分,DATETIME和TIMESTAMP值,精度高达微秒(6位)。要定义包含小数秒部分的列,请使用语法type_name(fsp),其中type_name是TIME,DATETIME或TIMESTAMP,而fsp是小数秒精度。例如:

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

CREATE TABLE Syntax摘要:

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

文档:

+0

谢谢@ Jocelyn让我清楚。 @CBroe已经以降低2分的成本指出了这一点。作为一名生物学学生的程序员是艰难的工作。 –