select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01')
CHỈNH SỬA
Nếu điều này được thực thi như một phần của câu lệnh trả về nhiều hàng hoặc như một phần của cập nhật, thì RAND () sẽ trả về một giá trị duy nhất cho toàn bộ tập kết quả. Trong trường hợp đó, RAND (CHECKSUM (NEWID ())) có thể được sử dụng.
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'