LMSouq
database Open

MySQL Incorrect datetime value: '0000-00-00 00:00:00'

LO
lorm
1 month ago
3 views
Problem Description
I've recently taken over an old project that was created 10 years ago. It uses MySQL 5.1. Among other things, I need to change the default character set from latin1 to utf8. As an example, I have tables such as this: CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `first_name` varchar(45) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, `last_name` varchar(45) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, `username` varchar(127) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, `email` varchar(127) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, `pass` varchar(20) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, `active` char(1) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT 'Y', `created` datetime NOT NULL, `last_login` datetime DEFAULT NULL, `author` varchar(1) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT 'N', `locked_at` datetime DEFAULT NULL, `created_at` datetime DEFAULT NULL, `updated_at` datetime DEFAULT NULL, `ripple_token` varchar(36) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, `ripple_token_expires` datetime DEFAULT '2014-10-31 08:03:55', `authentication_token` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `index_users_on_reset_password_token` (`reset_password_token`), UNIQUE KEY `index_users_on_confirmation_token` (`confirmation_token`), UNIQUE KEY `index_users_on_unlock_token` (`unlock_token`), KEY `users_active` (`active`), KEY `users_username` (`username`), KEY `index_users_on_email` (`email`) ) ENGINE=InnoDB AUTO_INCREMENT=1677 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC I set up my own Mac to work on this. Without thinking too much about it, I ran "brew install mysql" which installed MySQL 5.7. So I have some version conflicts. I downloaded a copy of this database and imported it. If I try to run a query like this: ALTER TABLE users MODIFY first_name varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL I get this error: ERROR 1292 (22007): Incorrect datetime value: '0000-00-00 00:00:00' for column 'created' at row 1 I thought I could fix this with: ALTER TABLE users MODIFY created datetime NULL DEFAULT '1970-01-01 00:00:00'; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 but I get: ALTER TABLE users MODIFY first_name varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ; ERROR 1292 (22007): Incorrect datetime value: '0000-00-00 00:00:00' for column 'created' at row 1 Do I have to updat...

AI-Generated Solution

Powered by LMSouq AI · GPT-4.1-mini

✓ Solution Ready
Analyzing problem and generating solution…
Was this solution helpful?
Back to Knowledge Base