4

我正在尝试生成随机的 unix 时间戳,但只找到了这个例子:

SELECT from_unixtime(
       unix_timestamp('2008-01-01 01:00:00')+floor(rand()*31536000)
);

这适用于生成随机时间,但它将时间重新转换为这种格式2008-06-16 14:14:38,这不是我想要的格式。我希望结果是一个 unix 时间戳,例如1357597694在 UTC-5 中。

我想要做的就是能够告诉它要吐出多少个 unix 时间戳,并让结果以 unixtime 时间戳的形式出现。就这样。我不明白为什么没有关于这个的帖子。

编辑 好的萨尔曼A

好的,可以说我需要在 1354439504 和 1357599297 之间选择一个随机日期我将如何在 mysql 脚本中执行此操作

4

2 回答 2

7

1 是 UNIX 时间戳。2 也是如此。123456789 也是如此。UNIX 时间戳只是一个整数;并且可以使用生成随机整数的规则。在 MySQL 中,您可以简单地编写以下代码来生成范围内的随机整数[0, 9]

SELECT FLOOR(RAND() * 10)

上面可以修改生成范围内的随机数[min, max]如下:

SELECT 1354439504 + FLOOR(RAND() * (1357599297 - 1354439504 + 1))

要使用查询生成 1000 个随机时间戳,请使用包含许多行的表(任何表):

SELECT 1354439504 + FLOOR(RAND() * (1357599297 - 1354439504 + 1))
FROM table_with_1000plus_rows
LIMIT 1000
于 2013-01-07T22:41:08.900 回答
5

如果您想要一个 unix 时间戳,那么只需跳过from_unixtime

select unix_timestamp('2008-01-01 01:00:00')+floor(rand()*31536000)
于 2013-01-07T22:39:14.130 回答