Adición de un número aleatorio de días a un campo de fecha

En este sencillo escenario queremos añadir a una tabla una columna conteniendo las fechas contenidas en un campo existente añadiendo un cierto desplazamiento (de, por ejemplo, 7 días) y un número aleatorio adicional de días, número aleatorio que varíe entre, por ejemplo, -3 y +3. Para ello partimos de una tabla, Sales, conteniendo un campo Date conteniendo una fecha (en formato datetime).

Para añadir un desplazamiento de n días vamos a utilizar la función DATEADD, que nos permite añadir un número de intervalos a una fecha o a un conjunto de fechas. La expresión de la nueva columna sería:

Random date = DATEADD(Sales[Date]; n; DAY)

...siendo n el número de días a añadir (o restar) a las fechas del contexto. En nuestro caso n resultará de sumar a 7 un número aleatorio que deberá variar entre -3 y +3, número que podemos generar con la función RANDBETWEEN. Es decir, n vendrá dado por:

n = 7 + RANDBETWEEN(-3; 3)

La expresión final de la nueva columna será entonces:

Random date = DATEADD(Sales[Date]; 7 + RANDBETWEEN(-3; 3); DAY)

Podemos ver las dos columnas, la original Date y la recién creada Random date, en la siguiente imagen:

Columna original y columna creada

 

Funciones DAX involucradas
Enviado por admin el Dom, 06/01/2019 - 22:44