Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Sélectionnez une date aléatoire dans une plage spécifique

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'