2015-02-19 3 views
3

Существует несколько смешных побочных эффектов преобразования, которые возникают при преобразовании столбца DATETIME в TIMESTAMP.MySQL DATETIME to TIMESTAMP конверсия

Есть DATETIME значения перед преобразованием:

+---------------------+ 
| creation_date  | 
+---------------------+ 
| 2015-02-18 19:57:52 | 
| 2015-02-18 19:57:18 | 
| 2015-02-18 19:51:52 | 
| 2015-02-18 19:51:29 | 
+---------------------+ 

ALTER TABLE т ИЗМЕНЕНИЕ CREATION_DATE CREATION_DATE TIMESTAMP нуль DEFAULT NULL;

Те же данные после преобразования в TIMESTAMP:

+---------------------+ 
| creation_date  | 
+---------------------+ 
| 2015-02-18 19:58:52 | 
| 2015-02-18 19:58:37 | 
| 2015-02-18 19:53:52 | 
| 2015-02-18 19:52:52 | 
+---------------------+ 

Никаких предупреждений не были даны во время преобразования.

Мне любопытно, в чем причина этого изменения? Обратите внимание, что дельта для каждой строки отличается. Для первой строки это одна минута, в течение вторых 79 секунд.

версия MySQL: 5.1.73

+1

Я нахожусь на 5.1.6, но делал то же самое с одинаковыми значениями даты, а значения ** не изменялись, даже меняясь обратно на 'DATETIME'. То есть работает на моей машине. Мой сервер db находится в Linux (CentOS). –

+1

http://stackoverflow.com/questions/409286/datetime-vs-timestamp, произошла ли другая транзакция на этой таблице сразу после или во время вашего изменения? – Hozikimaru

+0

@SurgeonofDeath может быть, но почему это имеет значение? – vadchen

ответ

0

Я собираюсь предположить, что дополнительные (позже) записи событий были добавлены между исходным запросом и ваш следующий запрос, как намекают SurgeonofDeath.

Возможно, вы могли бы добавить некоторые идентификационные значения в свой запрос ... и/или проверить, что те же самые времена, идентифицированные в исходном запросе, все еще присутствуют в базе данных?