ホームページ >データベース >mysql チュートリアル >MySQL で範囲内にランダムな日時を挿入するにはどうすればよいですか?

MySQL で範囲内にランダムな日時を挿入するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-26 19:19:10864ブラウズ

How to Insert Random Datetimes Within a Range in MySQL?

MySQL の範囲内のランダムな日時の挿入

指定された範囲内にランダムな日時を挿入することは、データベース プログラミングの一般的なタスクです。 MySQL は、この取り組みを支援する一連の関数を提供します。

範囲内のランダムな日時の生成

次の範囲を検討してください: 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))
    )
)

このクエリは次の手順を利用します。

  1. 基準日を日付に変換します。 Unix タイムスタンプ: MySQL の UNIX_TIMESTAMP 関数は、指定された日付を秒数を表す相当する Unix タイムスタンプに変換できます。 Unix エポック (1970 年 1 月 1 日) 以来。
  2. 範囲内でランダムな秒数を生成します: 指定された範囲内でランダムな秒数を生成するには、RAND() 関数を使用します。 0 から 1 までのランダムな値を生成するために使用されます。次に、この値に 2 年間の合計秒数が乗算されます。 (63072000).
  3. 基準日付に乱数を追加します: 手順 2 で生成された乱数が基準日付の Unix タイムスタンプに追加されます。
  4. 結果を日時に変換します: 最後に、FROM_UNIXTIME 関数を使用してタイムスタンプを変換します。

考慮事項

このクエリは近似的な解を提供しますが、長期間にわたって閏年などの要因が影響することに注意することが重要です。夏時間の調整により、指定された範囲からわずかに逸脱する可能性があります。

以上がMySQL で範囲内にランダムな日時を挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。