Мне нужно обновить все строки в моей таблице events
. Существует столбец event_date
с типом данных временной отметки.MySql timestamp - разное время после обновления всех строк
Но если я обновляю каждую строку (event_date
) с новой датой (пример: 2015-12-12 12:00:00), то у меня есть несколько строк со значением 2015-12-12 13:00:00.
Точка - почему некоторые строки правильные, а некоторые - 1 час?
В PHP я использую рамки Nette и его объект DateTime, который расширяет стандартную PHP DateTime ...
Любые идеи, подсказки, почему это happends?
EDIT: запрос выглядит следующим образом:
UPDATE `events`
SET `event_date`='2016-2-13 12:00:00', `event_date_to`=NULL
WHERE (`id` = 203)
значения в PHP я ставлю так:
$row->event_date = date("Y-m-d H:i:s", $oldRow['event_date']);
Проблема начинается рано - в этой таблице был период, как 2016-2-13 00 : 00: 00, но после выбора и эхо-дат сменились на 2016-2-12 23:00:00 - но не все строки ... только некоторые. Поэтому я сделать выбор:
select events.id, events.event_date, events.event_date_to,
concat(year(event_date), '-', month(event_date), '-',
day(event_date), ' 12:00:00') as new_event_date,
IF(events.event_date_to IS NULL,null, concat(year(event_date_to),
'-', month(event_date_to), '-', day(event_date_to), ' 12:00:00')) as
new_event_date_to from events
Это выбрать дать мне строки, как это:
769,2014-04-22 19:30:00,2014-04-22 21:45:00,2014-4-22 12:00:00,2014-4-22 12:00:00
Это означает: идентификатор, event_date (реальное значение дб), event_date_to (реальное значение дб), event_date (новое значение для вставки), event_date_to (новое значение для вставки - может быть NULL)
и сохранены в файл CSV ... Этот файл я разборе теперь и в Еогеасп обновляет каждую строку ...
Я проверил все запросыd раз в порядке (12:00:00), поэтому я не понимаю и застрял :)
К сожалению, если вы вставляете их одинаково, должно быть что-то еще происходит. Я сомневаюсь, что MySQL случайно добавляет час. Возможно, есть проблема с форматированием вставки, или некоторые значения фактически вставляются как 13:00:00? Сбросили ли вы свои вставные инструкции (sql), чтобы сравнить значения? Не могли бы вы разместить некоторые из этих sql здесь, может быть, даже с скриншотом о том, как они попадаются после вставки? –
И как вы их обновляете?Какой фактический запрос используется –
Я подозреваю, что вы, вероятно, должны использовать тип данных 'datetime', а не' timestamp' - отметки времени обычно используются для регистрации последнего раза, когда на запись повлияло использование 'on update CURRENT_TIMESTAMP' (примерно MySQL 5.1 IIRC) – CD001