在 JDBC 中處理「0000-00-00 00:00:00」DATETIME 值
使用下列指令從 MySQL 資料庫擷取 DATETIME值時JDBC,如果該值設定為準空值,則可能會遇到異常「0000-00-00 00:00:00」。當嘗試使用 resultset.getString("add_date") 以字串形式檢索值時,即使目的是取得原始字串,也會出現此問題。
替代解決方案
此問題的解決方法是使用以下SQL 查詢:
SELECT CAST(add_date AS CHAR) as add_date
此查詢強制轉換DATETIME 值轉換為CHAR ,確保將其作為字串檢索。但是,由於其額外的處理要求,它被認為是不太理想的解決方案。
JDBC URL 設定
另一種方法是直接在資料來源中設定JDBC URL設定:
jdbc:mysql://yourserver:3306/yourdatabase?zeroDateTimeBehavior=convertToNull
透過將zeroDateBehavior屬性設定為convertToNull,可以指示JDBC驅動程式進行轉換將全零DATETIME 值設為NULL,而不是拋出例外。
來源和其他選項
官方 MySQL 手冊提供了有關如何處理全零的更多資訊DATETIME值位於Connector/J:
https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html#property_zeroDateTimeBehavior
根據根據手冊,Connector/J 版本3.0.x 預設將全零DATETIME 值轉換為NULL。然而,在 3.1 版本中,預設行為更改為拋出異常。 ZeroDateTimeBehavior 屬性可讓您透過指定下列選項之一來自訂此行為:
以上是如何在 JDBC 中處理'0000-00-00 00:00:00”DATETIME 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!