我有一个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
有什么建议吗?提前谢谢。
答案 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;