Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Различно произволно генериране на време във фиксиран интервал

Проблемът OP имах, докато използвах само rand() се дължи на неговата оценка веднъж на заявка .

От документация :

Подходът, описан по-долу, премахва оптимизацията и потиска това поведение, така че rand() се оценява веднъж на ред :

dateadd( second
       , rand(cast(newid() as varbinary)) * 43200
       , cast('08:00:00' as time) )
  • newid() генерира уникална стойност от тип uniqueidentifier ;
  • стойността се преобразува с cast да се използва като семе в rand([seed]) функция за генериране на псевдослучаен float стойност от 0 до 1 и като семе винаги е уникален, връщаната стойност също е уникална.

SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C# Еквивалент на SQL Server DataTypes

  2. Изберете топ 10 записа за всяка категория

  3. Търсете във всички таблици, всички колони за конкретна стойност SQL Server

  4. SQL Server:Поставете набор от резултати от съхранена процедура в променлива на таблица, без да посочвате нейната схема

  5. Как да коригирам обърнати арабски знаци, смесени с английски в SQL сървър