我需要更新events表中的所有行.列event_date具有timestamp数据类型.
但是如果我用新日期更新每一行(event_date列)(例如:2015-12-12 12:00:00),那么我有一些值为2015-12-12 13:00:00的行.
重点是 – 为什么有些行是正确的,有些是1小时?
在PHP中我使用Nette框架和他的DateTime对象,它扩展了标准PHP DateTime …
任何想法,暗示为什么会发生这种情况?
编辑:查询看起来像这样:
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
它表示:id,event_date(实际db值),event_date_to(实际db值),event_date(insert的新值),event_date_to(insert的新值 – 可以为NULL)
并保存到csv文件…这个文件我正在解析现在和foreach更新每一行…
我查了所有查询,时间还可以(12:00:00)所以我不理解并且卡住了:)