SQL Server - Comparación Fechas: FechaMov, FechaIni, FechaFin

   
Vista:

Comparación Fechas: FechaMov, FechaIni, FechaFin

Publicado por victor (3 intervenciones) el 18/05/2016 17:30:10
Buenos dias:

Me pueden apoyar, traigo un problema no puedo comparar la fecha de mov, con la fecha de inicio y fecha fin.

Ejemplo: la fecha de emision del mov. es 16-06-2016

El periodo de mi XML es : 11-05-2016
Le saco el primer inicio y el final de mes
Quedaria asi : -- FECHA DEL ARCHIVO XML Ejem: 01-05-2016 AL 30-05-2016

Si la fecha de emision del mov. esta fuera del rango (01-05-2016 AL 30-05-2016)
deberia de entrar en esta condicion y mandar el error, se lo salta y no entra.

--IF ((@FechaMov > @FechaIni) AND (@FechaMov < @FechaFin))

Me pueden apoyar.

Saludos.




Este es el codigo que estoy ejecutando.

DECLARE openMyXML CURSOR LOCAL FOR
SELECT DescripcionExtra,FechaEmision FROM Gasto INNER JOIN GastoD ON Gasto.Id = GastoD.Id WHERE Gasto.ID = @ID
OPEN openMyXML
FETCH NEXT FROM openMyXML INTO @DescripcionExtra, @FechaMov
WHILE (@@FETCH_STATUS = 0 )
BEGIN
-- FECHA DEL ARCHIVO XML Ejem: 01-05-2016 AL 30-05-2016
SELECT @FechaXML = FechaAlta FROM facturasXML WHERE Factura = @DescripcionExtra
SET @FechaIni = DATEADD(MONTH, DATEDIFF(MONTH, 0, @FechaXML), 0)
SET @FechaFin = DATEADD(DAY, 5, EOMONTH(@FechaXML))


-- SE VALIDA SI LA FECHA DE EMISION DEL MOVIMIENTO PERTENECE AL PERIODO DEL ARCHIVO XML.
IF ((@FechaMov > @FechaIni) AND (@FechaMov < @FechaFin))
BEGIN
SELECT @Ok = 12345, @OkRef = 'Favor de validar la factura: ' + @DescripcionExtra +' La fecha de emisión: ' + CONVERT(VARCHAR(10),@FechaMov,103) + ' no corresponde al periodo del archivo XML'
CLOSE openMyXML
DEALLOCATE openMyXML
RETURN
END

FETCH NEXT FROM openMyXML INTO @DescripcionExtra, @FechaMov
END
CLOSE openMyXML
DEALLOCATE openMyXML
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Comparación Fechas: FechaMov, FechaIni, FechaFin

Publicado por Isaias (3186 intervenciones) el 18/05/2016 19:30:25
No dices que version y edicion de SQL Server manejas, pero casi todas las operaciones se pueden hacer SIN CURSORES.

Por otro lado la comparacion deberia ser:

IF ((@FechaMov > @FechaIni) OR (@FechaMov < @FechaFin))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar