sql >> Base de Datos >  >> RDS >> Mysql

Mysql inserta una fecha y hora aleatoria en un rango de fecha y hora dado

Aquí hay un ejemplo que debería ayudar:

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

Utiliza la fecha 2010-04-30 14:53:27 como base, la convierte en una marca de tiempo de Unix y agrega un número aleatorio de segundos de 0 a +2 años a la fecha base y la vuelve a convertir en DATETIME.

Debería estar bastante cerca, pero durante períodos de tiempo más largos, los años bisiestos y otros ajustes lo desbaratarán.