sql >> Databasteknik >  >> RDS >> Sqlserver

Välj ett slumpmässigt datum inom ett specifikt intervall

select DateAdd(d, ROUND(DateDiff(d, '1950-01-01', '1999-12-31') * RAND(), 0), '1950-01-01')

REDIGERA

Om detta ska köras som en del av en sats som returnerar flera rader eller som en del av uppdatering, skulle RAND() returnera ett enda värde för hela resultatuppsättningen. I det fallet kan RAND(CHECKSUM(NEWID())) användas.

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'


  1. Hur infogar man bulkdata i databasen åt gången?

  2. Gå med fyra bord som involverar LEFT JOIN utan dubbletter

  3. Varför en enkel T-SQL UDF-funktion gör kodexekveringen 3 gånger långsammare

  4. Håll MySQL-schemat synkroniserat mellan datorer