En pensando en funcion de foxpro, seria mas o menos algo asi:
* Resto 30 dias a la fecha del sistema
dFechaActual=date()-30
* Busco el mes y el ano
STORE PADL(ALLTRIM(STR(MONTH(dFechaActual))),2,"0") TO cMes
STORE PADL(ALLTRIM(STR(year(dFechaActual))),4,"0") TO cAno
*Llamo una rutina que me da el ultimo dia del mes
STORE Padl(Allt(Str(Day(finmes(dFechaActual)),2)),2,"0") TO cUltimoDia
* Construyo el rango de fecha del mes anterior
m.fechai=CTOD("01/"+cMes+"/"+cAno)
m.fechaf = Ctod(cUltimoDia+"-"+cMes+"-"+cAno)
No tengo mucho conocimiento manipulando funciones de fecha con SQL
Server y estoy aprendiendo Report Service ahora.
Por favor cualquier sugerencia de alguien con experiencia en esto sera
bienvenida
Yo utilizo este formato y funciona a la perfeccion:
SQLEXEC(pnconexion, "EXEC ListarLiquidacion '16/01/2010 00:00:00', '16/01/2010 23:59:00'")
Espero te ayude.
No hago nada con foxpro, el Problema es contruir la fecha con la
sintaxis de Reporting Services y enviar estos dos paramentros tipo
fecha al Store Procedure, estoy estudiando las funciones de manejo de
fechas.
Los dos parametros en reporting services, estan obteniendo el valor
por defecto de esta expresion:
=IIf(day(datevalue(now))=1 and month(datevalue(now))<>1,DateSerial(year
(datevalue(now)),month(dateadd("m",-1,now)),day(datevalue(now))),
IIf(day(datevalue(now))=1 and month(datevalue(now))=1,DateSerial(year
(dateadd("y",-1,now)),month(dateadd("m",-1,now)),day(datevalue(now))),
IIf(day(datevalue(now))=10 and month(datevalue(now))<>1,DateSerial(year
(datevalue(now)),month(dateadd("m",-1,now)),1),
IIf(day(datevalue(now))=10 and month(datevalue(now))=1,
DateSerial(year(dateadd("m",-12,now)),
month(dateadd("m",-1,now)),
1),datevalue(now)))))
Yo no la hice, no funciona cuando cambia el año, y quiero optimizarla,
creo que con menos codigo se puede obtener mejor resultado.
-- Código T-SQL --
declare @cFechaActual char(8), @cFechaDesde char(8), @dFechaActual
date
set @dFechaActual = GETDATE()
set @cFechaActual = convert( char( 8 ), @dFechaActual, 112 )
set @cFechaDesde = convert( char( 8 ), dateadd( month, -1,
@dFechaActual ), 112 )
select @cFechaActual, @cFechaDesde
-- Fin del Código T-SQL --
Luego, puedes tratar las cadenas de caracteres resultantes para
obterner las fechas que requieres como parámetros en Reporting
Services.
--
Saludos, espero sea de ayuda.
-- Código T-SQL --
declare @dFechaActual date, @d1roMesProx date, @ldAux date
set @dFechaActual = GETDATE()
set @ldAux = DATEADD( month, 1, @dFechaActual )
set @d1roMesProx = DATEADD( day, -DATEPART( day, @ldAux ), @ldAux )
select @d1roMesProx
-- Fin del Código T-SQL --
--
donde dice: "se calcula del último día del próximo mes", debe decir:
"se calcula del último día del mes actual"
--
Saludos, espero sea de ayuda