2016-07-31 60 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分的成本指出了這一點。作爲一名生物學學生的程序員是艱難的工作。 –