Intervalo de fechas de variable de instrucción SQL

Un usuario Pregunto ✅

wasonj1

Hola,

Tengo una consulta que utiliza una instrucción SQL que actualmente extrae datos entre 2018-07-01 y 2019-07-01. Quiero actualizar la instrucción SQL para poder extraer datos entre la fecha actual y 2 años antes sin codificar las fechas. ¿Alguien puede decirme cómo actualizar mi declaración SQL para hacer esto?

powerbi_sql_variable de fecha.jpg

VasTg

En respuesta a wasonj1

@wasonj1

El SQL será un poco diferente con Oracle o SQL Server.

Aquí están los ejemplos. Reemplace su cláusula/línea WHERE.

ORACLE:
WHERE M.Response_Date BETWEEN TRUNC(SYSDATE) AND TRUNC(ADD_MONTHS(SYSDATE,-24),'MONTH')

SQL SERVER:
WHERE M.Response_Date BETWEEN CAST(GETDATE() as DATE) AND DATEADD(MONTH,-24,CAST(GETDATE() as DATE))

Si esto ayuda, márquelo como una solución.

Felicitaciones también son agradables

VasTg

@wasonj1

¿Por qué no simplemente restas la fecha de sysdate?

¿Cuál es su base de datos?

wasonj1

En respuesta a VasTg

Hola @VasTg,

Tengo muy poca experiencia con SQL, ¿podría decirme cómo sería esa línea de código? Probé una variedad de funciones Date() y Sysdate() pero siempre recibía un mensaje de error. No sé cuál es la base de datos, aunque podría preguntarle a alguien si es importante (¿qué tipos hay?).

¡Gracias por tu ayuda!

VasTg

En respuesta a wasonj1

@wasonj1

El SQL será un poco diferente con Oracle o SQL Server.

Aquí están los ejemplos. Reemplace su cláusula/línea WHERE.

ORACLE:
WHERE M.Response_Date BETWEEN TRUNC(SYSDATE) AND TRUNC(ADD_MONTHS(SYSDATE,-24),'MONTH')

SQL SERVER:
WHERE M.Response_Date BETWEEN CAST(GETDATE() as DATE) AND DATEADD(MONTH,-24,CAST(GETDATE() as DATE))

Si esto ayuda, márquelo como una solución.

Felicitaciones también son agradables

wasonj1

En respuesta a VasTg

Era un servidor SQL, tuve que intercambiar las llamadas CAST y DATEADD pero funcionó perfectamente. ¡Muchos gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *