java.sql.SQLException: Cannot convert value ‘0000-00-00 00:00:00′ from column 7 to TIMESTAMP.
..

หากใครเคยเจอปัญหานี้ ตามมาทางนี้เลยครับ ผมมีคำตอบ

การแก้ปัญหานี้มีสองวิธีคือ
1. ไปเซ็ตค่า URL ในการติดต่อ database ว่า ?zeroDateTimeBehavior=convertToNull เช่น

jdbc:mysql://localhost/test?zeroDateTimeBehavior=convertToNull

2. ในขณะที่เราเขียนโปรแกรม (ภาษา Java)ในการติดต่อ database ให้เราเซ็ต Connection Properties ดังนี้

Class.forName(driver).newInstance();
connection = (Connection) DriverManager.getConnection(url + dbName, userName, password);
connection.setZeroDateTimeBehavior("convertToNull");

ทีนี้เมื่อเรารันโค้ด ที่ทำให้เกิด Exception ดังกล่าว

System.out.println(">>>> this is zero = "+rs.getTimestamp("finish_date"));

จะได้ผลลัพธ์เป็น

>>>> this is zero = null

หรือถ้าเป็น

connection.setZeroDateTimeBehavior("round");

จะได้ผลลัพธ์เป็น

>>>> this is zero = 0001-01-01 00:00:00.0

ซึ่งการเซ็ต zeroDateTimeBahavior สามารถดูรายละเอียดได้ ที่นี่

Last 5 posts by aErOnz`