Я думал, что столкнулся с ошибкой в MySQL 5.1, но ошибка была в коде perl, который создает временные метки. локальное время в perl использует 0-11 в течение нескольких месяцев, а в datetime в MySQL используется 1-12. Итак, у меня есть все эти искаженные временные метки, которые мне нужно обновить.
2012-00-19 09:03:30
Это должно быть:
2012-01-19 09:03:30
Проблема в том, что функции даты для MySQL возвращают NULL в течение 00 месяцев. Есть ли способ сделать это в MySQL?
РЕДАКТИРОВАТЬ: Решение =
UPDATE test_stats
SET start_time = CAST(CONCAT(SUBSTRING(start_time, 1, 5),
CAST((CAST(SUBSTRING(start_time, 6, 2) AS UNSIGNED) + 1) AS CHAR(2)),
SUBSTRING(start_time, 8, 12)) AS DATETIME);
Кстати, я использовал MySQL 5.1