PDO:将mysql`date`列从(d / m / y)更新为时间戳

时间:2014-02-08 13:20:13

标签: php mysql time

我有一个mysql users表,列join_date,格式为“d / m / Y”。我只想将此列更新为该现有数据的时间戳。

id    name    join_date
1     john    08/02/2014

现在我需要运行代码(比如while循环或foreach)将列join_date中的所有日期数据更新为时间戳[time():],如下所示:

id    name    join_date
1     john    1391814000



有什么建议吗?提前谢谢。

1 个答案:

答案 0 :(得分:3)

在评论中,我们可以发现不是TIMESTAMP,而DATE是应用程序的最佳数据类型。假设join_date是varchar列,您可以发出以下SQL命令以更改列类型并转换数据。

首先,您需要添加一个新的临时列:

ALTER TABLE `users` ADD `temp_date` DATE;

然后将现有字符串转换为DATE值:

UPDATE `users` SET `temp_date` = STR_TO_DATE(`join_date`, '%c/%e/%Y');

现在您可以删除现有列:

ALTER TABLE `users` DROP `join_date`

最后重命名临时列:

ALTER TABLE `users` CHANGE `temp_date` `join_date` DATE;