Maison >base de données >tutoriel mysql >Comment insérer des dates/heures aléatoires dans une plage spécifique dans MySQL ?

Comment insérer des dates/heures aléatoires dans une plage spécifique dans MySQL ?

DDD
DDDoriginal
2025-01-01 03:22:09951parcourir

How to Insert Random Datetimes Within a Specific Range in MySQL?

Insérer des dates-heures aléatoires dans une plage dans MySQL

L'insertion de valeurs datetime aléatoires dans une plage donnée peut être difficile avec SQL. Étant donné une plage telle que "2010-04-30 14:53:27" à "2012-04-30 14:53:27", l'insertion précise de valeurs dans cette plage peut prêter à confusion.

Solution :

Pour insérer des valeurs datetime aléatoires dans une plage spécifiée, utilisez ce qui suit approche :

INSERT INTO `sometable` VALUES(
    FROM_UNIXTIME(
        UNIX_TIMESTAMP('2010-04-30 14:53:27') 
        + FLOOR(0 + (RAND() * 63072000))
    )
)

Explication :

  • La fonction UNIX_TIMESTAMP() convertit la date et l'heure de base ("2010-04-30 14:53 : 27") à un horodatage Unix.
  • RAND() génère un nombre aléatoire à virgule flottante entre 0 et 1.
  • 63072000 est le nombre de secondes dans deux ans (ou 60 60 24 365 2).
  • FLOOR() arrondit le nombre aléatoire généré jusqu'à l'entier le plus proche.
  • La valeur résultante est ajoutée à l'horodatage Unix de base, représentant un nombre aléatoire de secondes dans la plage de deux ans.
  • FROM_UNIXTIME() reconvertit l'horodatage Unix modifié en DATETIME.

Alors que cette approche est assez précis, il convient de noter que sur des périodes plus longues, des facteurs tels que les années bissextiles peuvent entraîner des écarts mineurs par rapport à la plage exacte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn