将int-timestamp转换为时间戳(在更新行时)

时间:2013-01-11 14:29:32

标签: mysql join timestamp sql-update

我添加了一个应该存储timestamp值的新列。该值当前存在于另一个表中。所以我尝试构建一个查询来使用另一个表更新我的新列。

这是我目前的查询:

    UPDATE `gc_users` U 
    SET    `registration_date` = ( SELECT `joindate` 
                                   FROM    `vb_user` 
                                   WHERE   `username` = U.`name` 
                                   LIMIT 0,1
                                 )

问题是,在更新registration_date后,值为0000-00-00 00:00:00

新表:gc_users

  • 列:registration_date(时间戳)
  • 示例: 2013-01-11 15:24:04

来源表:va_user

  • 列:joindate(int)
  • 示例: 1354290120

1 个答案:

答案 0 :(得分:2)

使用FROM_UNIXTIME

UPDATE  `gc_users` U
         INNER JOIN `vb_user` a
            ON a.`username` = U.`name`
SET     u.`registration_date` = FROM_UNIXTIME(a.`joindate`)
LIMIT   0,1
相关问题