2012-12-10 105 views
0

我必须修复一个表,其中日期和时间存储为unix时间戳。我想将当前格式转换为mysql datetime类型,同时保留原始列。 (在跑步系统上工作,有点像开心手术)。使用INSERT ...将数据类型从unix时间戳更改为mysql datetime SELECT

我已经制作了当前表的一个副本,并希望使用FROM_UNIXTIMESTAMP将原始表中的值嵌入到匹配的行中。我的发言可能会走在正确的轨道上,但我无法实现。

INSERT INTO signup (add_time) SELECT FROM_UNIXTIME(addtime) FROM signup_backup WHERE signup.UID = signup_backup.UID; 

这是我目前的做法,但我得到未知的列,我知道为什么,但我无法弄清楚如何修复语句的语法。

回答

0

为什么使用INSERT?我想你应该使用更新:

UPDATE signup LEFT JOIN signup_backup ON signup.UID= signup_backup.UID 
SET signup.add_time = FROM_UNIXTIME(signup_backup.addtime) 
+0

啊是的,更新。对不起,我的错误。在理论上可以用目标和源是同一个表来执行这个操作吗? – Flobbo

+0

当然'更新注册SET add_time = FROM_UNIXTIME(addtime)' – valex

相关问题