MySQL での特定の範囲内のランダムな日時値の挿入
SQL での指定された範囲内のランダムな日時値の挿入は、効率的に実現できます。これを説明するために、提供された例を詳しく見てみましょう。
指定された範囲は '2010-04-30 14:53:27' から '2012-04-30 14:53:27' です。ただし、推奨クエリ「INSERT INTO sometable VALUES (RND (DATETIME()))」は、この範囲に関係なくランダムな日時値を生成します。
これに対処するには、次のクエリを使用できます。
INSERT INTO `sometable` VALUES( FROM_UNIXTIME( UNIX_TIMESTAMP('2010-04-30 14:53:27') + FLOOR(0 + (RAND() * 63072000)) ) )
このクエリは、基準日 (2010-04-30 14:53:27) を Unix に効果的に変換します。タイムスタンプを作成し、この基本タイムスタンプに 0 ~ 2 年のランダムな秒数を追加します。この変更されたタイムスタンプは DATETIME 形式に変換され、指定された範囲内でランダムな日時値が生成されます。
このメソッドは目的の結果の近似値を提供しますが、閏年を考慮していない可能性があることに注意することが重要です。またはその他の日付関連の調整。長期間の場合は、精度を確保するために、より洗練された技術を採用することをお勧めします。
以上がMySQL の特定の範囲内にランダムな日時値を挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。