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: