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
Started by
maurixio5540
, Nov 19 2013 10:56 AM
5 replies to this topic
#1
Posted 19 November 2013 - 10:56 AM
#2
Posted 19 November 2013 - 01:46 PM
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
Posted 19 November 2013 - 01:58 PM
Aunque hubiese sido muy bueno saber por que no se puede utilizar dicha función DATEADD en el procedimiento
#4
Posted 19 November 2013 - 03:26 PM
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
Posted 20 November 2013 - 12:57 AM
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
Posted 20 November 2013 - 08:24 AM
Si se realiza el cambio que propone eduarcol, se obtiene el mismo error. "Precompiler Error: Syntax error - MONTH."