Buen día, espero me puedan colaborar, resulta que tengo la siguiente consulta:
SELECT
DATEADD(-9 MONTH TO CAST('05/05/2013' AS DATE))
FROM
RDB$DATABASE
la cual ejecuto en el editor SQL y funciona perfectamente, arrojando como resultado: 08/05/2012
El inconveniente que tengo, es que necesito ejecutar dicha consulta dentro de un Procedimiento almacenado, el cual realizo de la siguiente forma:
CREATE PROCEDURE PROC_PRUEBA
RETURNS(
FECHA_TMP DATE)
AS
BEGIN
SELECT
DATEADD(-9 MONTH TO CAST('05/05/2013' AS DATE))
FROM
RDB$DATABASE
INTO :FECHA_TMP;
SUSPEND;
END
Pero al ejecutarlo me presenta el siguiente error: "Precompiler Error: Syntax error - MONTH."
Cualquier información o comentario al respecto, quedo totalmente agradecido

Problemas con Función DATEADD en Procedimientos
Comenzado por
maurixio5540
, nov 19 2013 10:56
5 respuestas en este tema
#1
Escrito 19 noviembre 2013 - 10:56
#2
Escrito 19 noviembre 2013 - 01:46
El problema lo resolví utilizando el siguiente SQL, enviándole el numero de días y no el numero de meses como estaba inicialmente:
select (CAST('05/05/2013' AS DATE) - 270) from RDB$DATABASE
De tal forma que el procedimiento queda de la siguiente manera:
CREATE PROCEDURE PROC_PRUEBA
RETURNS(
FECHA_TMP DATE)
AS
BEGIN
select (CAST('05/05/2013' AS DATE) - 270) from RDB$DATABASE
INTO :FECHA_TMP;
SUSPEND;
END
select (CAST('05/05/2013' AS DATE) - 270) from RDB$DATABASE
De tal forma que el procedimiento queda de la siguiente manera:
CREATE PROCEDURE PROC_PRUEBA
RETURNS(
FECHA_TMP DATE)
AS
BEGIN
select (CAST('05/05/2013' AS DATE) - 270) from RDB$DATABASE
INTO :FECHA_TMP;
SUSPEND;
END
#3
Escrito 19 noviembre 2013 - 01:58
Aunque hubiese sido muy bueno saber por que no se puede utilizar dicha función DATEADD en el procedimiento
#4
Escrito 19 noviembre 2013 - 03:26
Aunque hubiese sido muy bueno saber por que no se puede utilizar dicha función DATEADD en el procedimiento
Corrígeme si me equivoco (seguramente, así será), pero ¿DateAdd no es exclusiva de M$ $QL$erver? No creo que sea norma ANSI92, que entre en las sentencias de SQL "normal"...
#5
Escrito 20 noviembre 2013 - 12:57
Si existe esa funcion en Firebird http://www.firebirds...nc-dateadd.html
Con respecto al error podrias probar si cambiando el formato del argumento te deja hacerlo, como en el ejemplo
dateadd (month, 9, DateOfConception)
Con respecto al error podrias probar si cambiando el formato del argumento te deja hacerlo, como en el ejemplo
dateadd (month, 9, DateOfConception)
#6
Escrito 20 noviembre 2013 - 08:24
Si se realiza el cambio que propone eduarcol, se obtiene el mismo error. "Precompiler Error: Syntax error - MONTH."