sql >> Database teknologi >  >> RDS >> Sqlserver

Distinkt tilfældig tidsgenerering i det faste interval

Problemet OP havde, mens du kun brugte rand() skyldes dets evaluering én gang pr. forespørgsel .

Fra dokumentationen :

Den fremgangsmåde, der er beskrevet nedenfor, fjerner optimering og undertrykker denne adfærd, så rand() evalueres én gang pr. række :

dateadd( second
       , rand(cast(newid() as varbinary)) * 43200
       , cast('08:00:00' as time) )
  • newid() genererer en unik værdi af typen uniqueidentifier ;
  • værdien konverteres med cast skal bruges som frø i rand([seed]) funktion til at generere en pseudo-tilfældig float værdi fra 0 til 1 , og som frø er altid unik, den returnerende værdi er også unik .

SQLFiddle



  1. Jeg kan ikke starte MySQL-serveren fra kommandolinjen i Windows

  2. PDO bindParam for dato virker ikke

  3. CRON og SQLPLUS

  4. Kan ikke oprette en tabel i MySQL, fordi den allerede eksisterer