通过PHPMyAdmin导入CSV,空白时间戳结果在00:00:00

时间:2013-08-28 12:25:09

标签: mysql datetime phpmyadmin timestamp

目标表有一个名为updated的列,设置为:

Name: updated
Type: timestamp
Attributes: on update CURRENT_TIMESTAMP
Null: No
Default: CURRENT_TIMESTAMP
Extra: ON UPDATE CURRENT_TIMESTAMP

源数据采用CSV格式,每行updated字段为空,例如

id,item_name,updated,quantity
1,car,,4
2,truck,,5
3,chair,,5

使用PHPMyAdmin导入后,我希望在导入执行时看到updated列填充当前日期/时间,但是,我得到所有0000-00-00 00:00:00

MySQL版本:5.5.30。这个结果与MyISAM和InnoDB相同。

3 个答案:

答案 0 :(得分:1)

那是因为提供了该字段。它以空字符串形式提供,与NULL或默认值不同。

转换为数字值时,空字符串将转换为0。格式化为日期的时间戳00000-00-00 00:00:00

您可以在导入后运行UPDATE table SET updated=NOW()(如果您始终导入完整的集合),也可以从CSV中删除整个列。

答案 1 :(得分:1)

如何在phpmyadmin中更新SET?

使用上述列,将CSV中更新列的每个值指定为“NULL”。然后将csv导入的日期添加到mySQL。

我注意到一个奇怪的事情是列中的定义错误。即使有一个空表,它告诉我TIMESTAMP的默认值不能是CURRENT_TIME。为了解决这个问题,我把头撞在桌子上三次,将类型更改为日期时间,保存,然后重新编辑,并允许将类型更改为TIMESTAMP。

答案 2 :(得分:0)

以下步骤适用于将时间戳设置为NULL。 1.设置列的默认值-更新为NULL(无论如何,您希望时间戳记为空) 2.在csv文件中,键入NULL而不是将字段保留为空

此方法也可以用于自动增量