4

ランダムな UNIX タイムスタンプを生成しようとしていますが、次の例しか見つかりませんでした:

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

これはランダムな時間を生成するために機能しますが、時間をこの形式に再変換しますが、これは私が望む形式2008-06-16 14:14:38ではありません。1357597694結果をUTC-5などの UNIX タイムスタンプにしたい。

私がやりたいのは、吐き出す unix タイムスタンプの数を伝え、結果を unixtime スタンプ形式にすることだけです。それで全部です。これについての投稿がまだない理由がわかりません。

編集 OKサルマン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 に答える