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?
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!