select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01')
MODIFIER
Si cela doit être exécuté dans le cadre d'une instruction qui renvoie plusieurs lignes ou dans le cadre d'une mise à jour, le RAND () renverrait une valeur unique pour l'ensemble des résultats. Dans ce cas, RAND(CHECKSUM(NEWID())) peut être utilisé.
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'