2013-01-07 41 views
3

我試圖生成隨機UNIX時間戳和只找到這個例子:如何生成隨機UNIX時間戳的MySQL

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 確定薩爾曼一個

OK可以說,我需要選擇之間的隨機日期1354439504 & 1357599297如何將我做,在mysql的腳本

+2

因此,刪除'FROM_UNIXTIME()'將時間戳轉換爲字符串? –

+0

您可能希望爲[文檔]添加書籤(http://dev.mysql.com/doc/refman/5.1/zh-CN/date-and-time-functions.html#function_from-unixtime)..因爲它會解釋你的結果;-) – Leigh

回答

4

如果你想要一個UNIX時間戳,那麼就跳過from_unixtime

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

omg埃裏克謝謝我想送你一筆錢給你的幫助,這已經令人沮喪...現在又一件事我怎麼告訴一次做50或10例如 –

5

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 
+0

好吧讓我說我需要選擇1354439504&1357599297之間的隨機日期我將如何做,然後mysql腳本 –

+0

好吧,等着看 –

+0

請參閱修訂答案。 –