Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Selecione uma data aleatória dentro de um intervalo específico

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

EDITAR

Se isso for executado como parte de uma instrução que retorna várias linhas ou como parte da atualização, RAND() retornará um valor único para todo o conjunto de resultados. Para esse caso RAND(CHECKSUM(NEWID())) pode ser usado.
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'