我的表中有一个名为updated_date的'timestamp'类型列。向表中添加列时,所有行都更新为相同的updated_date。这不是灾难,因为我们仍然在测试,但它破坏了我们网站的功能(按照updated_date的顺序显示事物)。
有没有办法可以将列中的所有updated_date值(但id低于x)更改为某个随机日期(或增量日期)?
提前致谢!
答案 0 :(得分:2)
这可能会解决您的问题:
UPDATE updated_table SET timestamp = FROM_UNIXTIME(1e9 + id) WHERE id < x;
基本上它将日期设置为对应于10亿+ id的Unix时间戳(1,000,000,000 unix时间戳是2001-09-08 21:46:40)。这样你就可以按照id的顺序获得唯一的时间戳。
答案 1 :(得分:2)
嗯,你可以这样做
UPDATE table SET updated_time = NOW() WHERE id < x
给定id属于表
如果你想要一些过去的随机数据
UPDATE test2 SET update_time = NOW() - interval rand()*120 day - interval rand()*36000 second WHERE id < x
根据您的需要调整
答案 2 :(得分:0)
时间戳只是自纪元以来的秒数(1970-01-01 00:00:01)。如果您从基本时间戳开始,您可以添加自该数字后的随机秒数,并且您有随机日期。