select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01')
BEARBEITEN
Wenn dies als Teil einer Anweisung ausgeführt werden soll, die mehrere Zeilen zurückgibt, oder als Teil einer Aktualisierung, würde RAND() einen einzelnen Wert für die gesamte Ergebnismenge zurückgeben. Für diesen Fall kann RAND(CHECKSUM(NEWID())) verwendet werden.
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'