2013-02-01 96 views
0

我在數據庫中有一列,其類型爲datetime。用戶每次更改某些內容時都會更新,以指出用戶在此日期/時間在網站上更改了某些內容。MySQL損壞日期插入NOW()

,即時通訊使用的查詢是:

INSERT INTO Test(bunch columns, ChangedAt) VALUES (bunch values, NOW()) 

幾天,現在,經過我檢查表,並有具有用於ChangedAt列該值一行:

2020-11-14 00:00:00 

任何的IDE如何它得到了地獄2020?爲什麼會有time00:00:00

感謝

+0

出於好奇,你可以在數據庫所在的機器上運行'date',看看有什麼說的嗎? –

回答

0

只有2個可能的原因。
電腦的日期是錯誤的......極有可能是00:00:00

或者行被更新/插入那樣。

MySQL的識別DATETIME和時間戳值在這些格式:

作爲一個字符串 'YYYY-MM-DD HH:MM:SS' 或 'YY-MM-DD HH:MM:SS'格式爲 。這裏也允許使用「放鬆」的語法:任何標點符號 字符可用作日期部分之間的分隔符或時間 部分。例如,'2012-12-31 11:30:45','2012^12^31 11 + 30 + 45', '2012/12/31 11 * 30 * 45'和'2012 @ 12 @ 31 11^30^45'等價。

作爲'YYYYMMDDHHMMSS'或 'YYMMDDHHMMSS'格式中沒有分隔符的字符串,前提是字符串作爲日期有意義。 例如,'20070523091528'和'070523091528'被解釋爲 '2007-05-23 09:15:28',但是'071122129015'是非法的(它具有 無意義的小時部分)並且變成'0000-00- 00 00:00:00'。

作爲YYYYMMDDHHMMSS或YYMMDDHHMMSS格式的數字,提供了 ,該數字作爲日期有意義。例如,19830905132800和 830905132800被解釋爲「1983年9月5日13點28分零零秒」

,你可以看到..這將是很難插入錯誤不同的值,並把它插入。 .. 20201114000000在你的情況...

+0

所以我會假設某種魔法發生了,並搞砸了那一條記錄。 :) 謝謝 – GGio