select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01')
EDYTUJ
Jeśli ma to zostać wykonane jako część instrukcji zwracającej wiele wierszy lub jako część aktualizacji, RAND() zwróci pojedynczą wartość dla całego zestawu wyników. W takim przypadku można użyć 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'