sql >> Base de Datos >  >> RDS >> Sqlserver

Valor aleatorio para la columna DATETIME

Hoy voy a describir cómo generar un valor aleatorio para el campo DATETIME dentro de un rango determinado. Esto es muy útil especialmente para generar datos de prueba. Para esto, usaremos un par de funciones integradas como:

  • DIF.DE FECHA
  • AÑADIRFECHA
  • ALEATORIO
  • REDONDO

Valor DATETIME aleatorio

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)

Espero que esto sea útil para ti. ¡Feliz TSQLing!

Esto se publica por primera vez aquí