MyBatis報錯:Data truncation: Incorrect datetime value: '0' for column 的解決和思考


學習Mybatis 的時候遇到  Data truncation: Incorrect datetime value: '0' for column 

找了一圈一直以為是插入時間的格式跟數據庫的格式不一致想了各種辦法解決時間格式的問題都解決不了。

 

 

 通過log4j日志 仔細檢查發現其實通過java.util獲得的 new(Date)傳入的時間格式就是數據庫datetime所需要的時間戳(timetamp)格式  ,核心問題還是傳入數據庫的值不對並且始終為零。

 通過博客  https://blog.csdn.net/mcloser/article/details/89679451   內容及底下的評論發現根本問題就是SQL格式寫錯了

 

<insert id="addBlog" parameterType="com.timmy.pojo.Blog" >
    insert into mybatis.blog (id, title, author, create_time, views)
    VALUES (id=#{id},title=#{title},author=#{author},create_time=#{create_time},views=#{views})
</insert>

 

正確insert 語句格式:     

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

所以正確代碼中values內不應該加 = 號,加了等號會成為邏輯判斷,導致插入的value為0 ,值為零其他類型如varchar和int可能不會報錯,但是datetime會報這個錯誤,
看到有一些人有問題說
插入數據成功了沒報錯但是值都是0,應該還是這個sql寫錯的問題。

正確代碼如下:

 

打好基礎,多寫sql,方是終極解決之道!








免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM