MySQL での特定の範囲内のランダムな日時値の生成
指定された範囲内のランダムな日時値を挿入することは、データベース操作における一般的な要件です。 SQL を使用すると、いくつかのトリックを使用してこのような値を生成することができます。
たとえば、2010-04-30 14:53:27 から 2012-04-30 14:53:27 までの範囲を考えてみましょう。この範囲内でランダムな日時を生成するには、次のアプローチを使用できます。
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 タイムスタンプに変換します。次に、FLOOR() 関数を使用して、0 ~ 63072000 の範囲のランダムな秒数 (約 2 年) を基準日付に追加します。最後に、FROM_UNIXTIME() 関数を使用して、変更された Unix タイムスタンプを DATETIME に変換します。
このメソッドは、指定された範囲内のランダムな日時値の近似値を提供します。ただし、閏年やその他のカレンダーの調整により、長期間にわたって完全に正確ではない可能性があります。
以上がMySQL で特定の範囲内でランダムな日時値を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。