sql >> Database >  >> RDS >> Sqlserver

Verschillende willekeurige tijdgeneratie in het vaste interval

Het probleem OP had tijdens het gebruik van slechts rand() is vanwege de evaluatie eenmaal per zoekopdracht .

Van de documentatie :

Benadering die hieronder wordt beschreven verwijdert optimalisatie en onderdrukt dit gedrag, dus rand() wordt eenmaal per rij geëvalueerd :

dateadd( second
       , rand(cast(newid() as varbinary)) * 43200
       , cast('08:00:00' as time) )
  • newid() genereert een unieke waarde van het type uniqueidentifier ;
  • de waarde wordt geconverteerd met cast te gebruiken als zaad in rand([seed]) functie om een ​​pseudo-willekeurige float . te genereren waarde van 0 tot 1 , en als zaad is altijd uniek de terugkerende waarde is ook uniek.

SQLFiddle



  1. langzame telling(*) op innoDB

  2. Pl/SQL- Krijg kolomnamen uit een query

  3. Zoeken in Oracle Fuzzy-tekst

  4. T-SQL gesplitste tekenreeks