Mysql
日期時間格式在 mysql 5.0 和 5.1 之間發生了變化?
我已經將 mysql slave 從 mysql 5.0 升級到 mysql 5.1。在追趕期間,複製在日期時間值不正確的查詢上失敗:
110919 13:56:18 [ERROR] Slave SQL: Error 'Incorrect datetime value: '2010-03-14 02:35:34.0' for column 'creation_date' at row 1' on query.
我嘗試重新插入查詢,但又失敗了,然後我將值固定為:
2010-03-14 02:35:34
並且接受了查詢。
如何設置 mysql 以批准此類日期時間值以防止將來出現問題?
我的猜測是它是在表描述中設置的,並在 mysql_upgrade 期間被重置。
Mysql 5.1 處理微秒的方式與 mysql 5.0 相同,但是微秒不能儲存到任何時間數據類型的列中。根據 Mysql Doc 丟棄任何微秒部分:http: //dev.mysql.com/doc/refman/5.1/en/datetime.html。但是,由於您遇到此錯誤,您可以使用 mysql 中的 sql 模式設置啟用允許無效日期。
sql-mode=allow_invalid_dates
在 my.cnf 或 my.ini 中(取決於您的作業系統)。
http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode_allow_invalid_dates
PS:令人驚訝的是,您在問題中提供的日期和時間實際上是 DST(2010 年 3 月 14 日)中不存在的時間:)