如何生成随机的unix时间戳mysql

时间:2013-01-07 22:36:09

标签: mysql sql datetime timestamp unix-timestamp

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

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

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

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

EDITED 好的萨尔曼A

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

2 个答案:

答案 0 :(得分:6)

1是UNIX时间戳。所以是2.所以是123456789. UNIX timestamp只是一个整数;并且可以使用生成随机整数的规则。在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

答案 1 :(得分:5)

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

select unix_timestamp('2008-01-01 01:00:00')+floor(rand()*31536000)