sql >> Base de Datos >  >> RDS >> Sqlserver

Seleccione una fecha aleatoria dentro de un rango específico

select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01')

EDITAR

Si esto se va a ejecutar como parte de una instrucción que devuelve varias filas o como parte de una actualización, RAND() devolvería un valor único para todo el conjunto de resultados. Para ese caso se puede utilizar RAND(CHECKSUM(NEWID())).

select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01'),
       DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(CHECKSUM(NEWID())), 0), '1950-01-01')
from master..spt_values where type = 'P'