3

テーブルに updated_date という「タイムスタンプ」タイプの列があります。テーブルに列を追加すると、すべての行が同じ 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 に答える