select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01')
REDIGERA
Om detta ska köras som en del av en sats som returnerar flera rader eller som en del av uppdatering, skulle RAND() returnera ett enda värde för hela resultatuppsättningen. I det fallet kan RAND(CHECKSUM(NEWID())) användas.
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'