Ir al contenido


Foto

Problemas con Función DATEADD en Procedimientos


  • Por favor identifícate para responder
5 respuestas en este tema

#1 maurixio5540

maurixio5540

    Member

  • Miembros
  • PipPip
  • 31 mensajes
  • LocationColombia

Escrito 19 noviembre 2013 - 10:56

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
  • 0

#2 maurixio5540

maurixio5540

    Member

  • Miembros
  • PipPip
  • 31 mensajes
  • LocationColombia

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
  • 0

#3 maurixio5540

maurixio5540

    Member

  • Miembros
  • PipPip
  • 31 mensajes
  • LocationColombia

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
  • 0

#4 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

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"...
  • 0

#5 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

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)
  • 0

#6 FELIX

FELIX

    Advanced Member

  • Miembros
  • PipPipPip
  • 123 mensajes

Escrito 20 noviembre 2013 - 08:24

Si se realiza el cambio que propone eduarcol, se obtiene el mismo error. "Precompiler Error: Syntax error - MONTH."
  • 0




IP.Board spam blocked by CleanTalk.