Data truncation: Incorrect datetime value時間入庫錯誤

Eclipse報錯信息:Data truncation: Incorrect datetime value: ‘’ for column ‘pdate’ at row 1

在開發一個網上商城時,實現保存商品的方法,無法往數據庫商品表插入數據,報錯信息顯示插入的數據格式不對-- ‘pdate’


錯誤原因

  1. java中Date類型默認是格林尼治時間,對應數據表使用的是datetime類型
  2. 我們引入的mysql的jar包,數據庫驅動mysql-connector-java封裝了將java的Date類型的格林尼治時間轉換爲‘yyyy-MM-dd HH:mm:ss’的功能。對應的數據表使用的是date類型
  3. 當我們的MySQL版本和驅動mysql-connector-java的jar包版本一致才能夠轉換成功(我的mysql版本爲5.6,驅動是5.1.7)

解決方案

  1. 更改數據庫版本與jar包一致
  2. 對pdate使用SimpleDateFormat進行轉換,轉換成和數據庫一致的格式:yyyy-MM-dd hh:mm:ss

我們採用解決方案2,現展示修改前後的代碼

  • 修改前
// 將提交的數據添加到數據庫中.
		product.setPdate(new Date());
  • 修改後
// 將提交的數據添加到數據庫中.
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		String format = sf.format(new Date());
		Date parse = sf.parse(format);
		System.out.println("1:"+new Date());
		System.out.println("2:"+parse);
		product.setPdate(parse);

大功告成,希望有所幫助~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章