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
Libérer: 2025-01-01 03:22:09
original
948 Les gens l'ont consulté

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))
    )
)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal