Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wählen Sie ein zufälliges Datum innerhalb eines bestimmten Bereichs aus

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'