Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL: Data truncation: Incorrect datetime value: '2006-10-01 02:22:44'

Tags:

mysql

jdbc

I'm getting the following exception updating a row using MySQL via JDBC:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '2006-10-01 02:22:44'

The column is defined as:

'created_on_service timestamp NULL DEFAULT NULL'

There are no indexes or foreign keys on that column.

Obviously it's not a problem with data type. I have values in that table from both before and after that datetime. I also have values with times both before and after 2:22 AM.

like image 402
Cam Price-Austin Avatar asked Sep 27 '11 04:09

Cam Price-Austin


People also ask

How do I fix incorrect datetime value in MySQL?

The obvious way to fix the error is to change the formatting of your value into the format that MySQL can accept. But rather than editing the value manually, you can use the STR_TO_DATE() function to help you convert the string value into date value.


2 Answers

Solved it.

Turns out that the 1st of October 2006 in South Australia was the start of daylight savings. Clocks get set forward one hour at 2.00am, so there was no 2:22am on that date: it went straight from 2:00am to 3:01am.

I'll change the db timezone to UTC, which should solve this issue.

like image 68
Cam Price-Austin Avatar answered Nov 16 '22 01:11

Cam Price-Austin


I fixed the same problem (com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '' for column 'perev_start_time' at row 1) by upgrading my MySQL connector JAR, and copying the mysql.jar to the Tomcat lib directory.

The version of MySQL Server is 5.6 and the MySQL connector is mysql-connector-java-5.1.30-bin.jar.

like image 38
Ppacheco Avatar answered Nov 16 '22 02:11

Ppacheco