1. 程式人生 > >Cannot convert value '0' from column 7 to TIMESTAMP.

Cannot convert value '0' from column 7 to TIMESTAMP.

JAVA連線MySQL資料庫,在操作值為0的timestamp型別時不能正確的處理,而是預設丟擲一個異常,就是所見的:java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 7 to TIMESTAMP。這一問題在官方文件中有詳細說明,詳見如下連結:

在JDBC連線串中有一項屬性:zeroDateTimeBehavior,可以用來配置出現這種情況時的處理策略,該屬性有下列三個屬性值:

l exception:預設值,即丟擲SQL state [S1009]. Cannot convert value....的異常;

l convertToNull:將日期轉換成NULL值;

l round:替換成最近的日期即0001-01-01;

因此對於這類異常,可以考慮通過修改連線串,附加zeroDateTimeBehavior=convertToNull屬性的方式予以規避,例如:

<property name="url" value="jdbc:mysql://localhost:3306/xiaonei?useUnicode=true&amp;characterEncoding=utf-8"/>