3

我的表中有一个名为 updated_date 的“时间戳”类型列。向表中添加列时,所有行都更新为相同的 updated_date。这不是一场灾难,因为我们仍在测试中,但它破坏了我们网站的功能(按更新日期的顺序显示)。

有没有办法可以将列中的所有 updated_date 值(但 id 低于 x)更改为某个随机日期(或增量日期)?

提前致谢!

4

3 回答 3

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 的顺序获得唯一的时间戳。

于 2012-12-24T21:23:07.677 回答
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

根据您的需要进行调整

于 2012-12-24T21:24:34.167 回答
0

时间戳只是自纪元 (1970-01-01 00:00:01) 以来的秒数。如果您从基本时间戳开始,您可以从该数字开始添加随机秒数,并且您有随机日期。

于 2012-12-24T21:23:31.233 回答