Consulta de DTS

19/10/2005 - 20:18 por DiegoC | Informe spam
Hola, realmente ya he probado todo y no se me ocurre por donde viene el
problema.

Tengo unas bases DBase IV, las cuales tengo que tomar en un proceso
automatico.
El tema que en esas bases hay mucha info y yo tengo que ir tomando solo el
ultimo mes.
Esto se correria automaticamente todos los principios de mes.

Por ende se me habia ocurrido algo asi:

Hago la Coneccion a DBase y la coneccion a la base de SQL

Y armo una Tarea de Transformacion de Datos asi:

SELECT *
FROM ORD_IT
WHERE (FEC BETWEEN ? AND ?)

El tema es que las funciones me Devuelven un formato de Fecha que no es
compatible con los parametros que me permite la transformacion (Date) y lo
que me devuelve la funcio es Datetime, probe con CONVERT(varchar(10),
PrimerDiaMesAnterior, 103) (lo cual me entrega 01/09/2005) pero me da un
error en los parametros que no coincide el tipo de datos. Los parametrso
son 2 Funciones que detallo al final.

Si pongo manualmente en las Variables Globales 01/09/2005, Todo Ok. pero
necesito que sea automatico.

Desde ya muchas gracias, y espero no haberlos aburrido y haberme explicado
bien.

CREATE FUNCTION PrimerDiaMesAnterior(@F as datetime)
RETURNS datetime
AS
BEGIN

Declare @Fecha as datetime
SET @Fecha = CAST('01' + '/' + CAST(month(dateadd(m,-1,@F)) as varchar(2)) +
'/' + CAST(Year(dateadd(m,-1,@F)) as varchar(4)) as datetime)

Return @Fecha
END


y

CREATE FUNCTION UltimoDiaMesAnterior(@F as datetime)
RETURNS datetime
AS
BEGIN

Declare @Fecha as datetime
SET @Fecha = CAST('01' + '/' + CAST(month(dateadd(m,-1,@F)) as varchar(2)) +
'/' + CAST(Year(dateadd(m,-1,@F)) as varchar(4)) as datetime)

Return Dateadd(d,-1,Dateadd(m,1,@Fecha))
END
 

Leer las respuestas

#1 Maxi [MVP SQL Server]
20/10/2005 - 01:45 | Informe spam
Hola diego, no comprendi bien si el problema decis q esta en la funcion o en
el select del DTS


[Microsoft MVP SQL SERVER]
Culminis SQL-Server Speakers (http://latam.culminis.com)

Maxi - Buenos Aires - Argentina
Msn_messager:
mail: Maxi.da[arroba]gmail.com

"DiegoC" escribió en el mensaje
news:
Hola, realmente ya he probado todo y no se me ocurre por donde viene el
problema.

Tengo unas bases DBase IV, las cuales tengo que tomar en un proceso
automatico.
El tema que en esas bases hay mucha info y yo tengo que ir tomando solo el
ultimo mes.
Esto se correria automaticamente todos los principios de mes.

Por ende se me habia ocurrido algo asi:

Hago la Coneccion a DBase y la coneccion a la base de SQL

Y armo una Tarea de Transformacion de Datos asi:

SELECT *
FROM ORD_IT
WHERE (FEC BETWEEN ? AND ?)

El tema es que las funciones me Devuelven un formato de Fecha que no es
compatible con los parametros que me permite la transformacion (Date) y lo
que me devuelve la funcio es Datetime, probe con CONVERT(varchar(10),
PrimerDiaMesAnterior, 103) (lo cual me entrega 01/09/2005) pero me da un
error en los parametros que no coincide el tipo de datos. Los parametrso
son 2 Funciones que detallo al final.

Si pongo manualmente en las Variables Globales 01/09/2005, Todo Ok. pero
necesito que sea automatico.

Desde ya muchas gracias, y espero no haberlos aburrido y haberme explicado
bien.

CREATE FUNCTION PrimerDiaMesAnterior(@F as datetime)
RETURNS datetime
AS
BEGIN

Declare @Fecha as datetime
SET @Fecha = CAST('01' + '/' + CAST(month(dateadd(m,-1,@F)) as varchar(2))
+
'/' + CAST(Year(dateadd(m,-1,@F)) as varchar(4)) as datetime)

Return @Fecha
END


y

CREATE FUNCTION UltimoDiaMesAnterior(@F as datetime)
RETURNS datetime
AS
BEGIN

Declare @Fecha as datetime
SET @Fecha = CAST('01' + '/' + CAST(month(dateadd(m,-1,@F)) as varchar(2))
+
'/' + CAST(Year(dateadd(m,-1,@F)) as varchar(4)) as datetime)

Return Dateadd(d,-1,Dateadd(m,1,@Fecha))
END




Preguntas similares