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

Valeur aléatoire pour la colonne DATETIME

Aujourd'hui, je vais décrire comment générer une valeur aléatoire pour le champ DATETIME dans une plage donnée. Ceci est très utile spécialement pour générer des données de test. Pour cela, nous utiliserons quelques fonctions intégrées telles que :

  • DATEDIFF
  • DATEADD
  • RAND
  • ROND

Valeur DATETIME aléatoire

DECLARE @startDate DATETIME -- start date
DECLARE @endDate DATETIME -- end date
DECLARE @noOfSec INT -- variable
DECLARE @randomSec INT -- variable

SET @startDate = '2021-06-27 08:00 AM' -- assigning starting date
SET @endDate = '2021-06-27 08:30 AM' -- assigning end date

-- assigning end date -- Get the number of seconds within the date range
set @noOfSec = DATEDIFF(SECOND, @startDate, @endDate)

-- Get random seconds within the date range
set @randomSec = ROUND(((@noOfSec-1) * RAND()), 0)

-- Add the random seconds to get the random datetime value within the daterange
SELECT DATEADD(SECOND, @randomSec, @startDate)

J'espère que cela vous sera utile. Joyeux TSQL !

Ceci est d'abord publié ici