0

我有 2 个日期字段。一个工作完美(created),第二个(transactiontime)稍微滞后。因此,我想使用我创建的日期,它是 unix 时间,并通过使用 from_unixtime 将其设置为字段 (transactiontime) 进行转换

transactionsid         created            transactiontime
1                      1362140510         2013-06-06 16:55:21
2                      1362501952         1980-02-01 13:25:52
3                      1362502022         1980-02-02 14:20:10    
3                      1364224671         0
and so on, and so on

这就是我尝试的方式。但这不起作用,因为它不允许我定义 t3,为什么会这样?还有更简单的方法吗?

UPDATE transactions as t1
set t1.transactiontime = 
(
select FROM_UNIXTIME(t2.created) 
from transactions as t2 
where t2.transactiontime < '2011-01-01 00:00:00'
) as t3
where t1.transactionid = t3.transactionid
4

2 回答 2

2

您不必使用子查询或 JOIN 来使用同一表中的数据更新表。更简单,更快:

UPDATE transactions SET transactiontime=FROM_UNIXTIME(created) 
WHERE transactiontime < '2011-01-01 00:00:00'
于 2013-07-10T12:02:33.117 回答
-2
UPDATE transactions 
SET transactiontime = created 
WHERE id = 1

应该工作完美

于 2013-07-10T12:03:46.243 回答