Hola a todos!
De antemano agardezco cualquier ayuda que me puedan brindar.
Resulta que yo estoy realizando el siguiente procedimiento:
Código:
CREATE TABLE #Fechas (Fechas VARCHAR(10) NOT NULL)
DECLARE @i INT
DECLARE @FechaIng VARCHAR(10)
SET @i = "0"
WHILE @i <= 30--se calculan hasta 30 días
BEGIN
SET @FechaIng = CONVERT(VARCHAR(10),DATEADD(DAY,@i,GETDATE()),103)
INSERT INTO #Fechas (Fechas)
SELECT @FechaIng
SET @i = @i + 1
END
DECLARE Fecha_Cursor CURSOR FOR
(SELECT CONVERT(VARCHAR(10), FechaPrestamoReserva,103) AS FechaPrestamoReserva,
CONVERT(VARCHAR(10),FechaEntrega,103) AS FechaEntrega --EJEMPLAR RESERVADO
FROM Servicios
WHERE CodigoAcceso = "0003032" AND FechaDevolucion IS NULL AND FechaCancelacion IS NULL AND
FechaPrestamoReserva IS NOT NULL)
UNION
(SELECT CONVERT(VARCHAR(10), FechaPrestamo,103) , CONVERT(VARCHAR(10), FechaEntrega,103) --EJEMPLAR PRESTADO
FROM Servicios
WHERE CodigoAcceso = "0003032" AND FechaDevolucion IS NULL AND FechaCancelacion IS NULL AND FechaPrestamo IS
NOT NULL )
DECLARE @FechaPrestamoR VARCHAR(10)
DECLARE @FechaEntre VARCHAR(10)
OPEN Fecha_Cursor
FETCH NEXT FROM Fecha_Cursor INTO @FechaPrestamoR, @FechaEntre
WHILE @@FETCH_STATUS = 0
BEGIN--Elimina los rangos de días que esta o será prestado el ejemplar
DELETE FROM #Fechas
WHERE CONVERT(DATETIME,#Fechas.Fechas,103) BETWEEN CONVERT(DATETIME,@FechaPrestamoR,103)
AND DATEADD(DAY,-1,CONVERT(DATETIME,@FechaEntre,103))
FETCH NEXT FROM Fecha_Cursor INTO @FechaPrestamoR, @FechaEntre
END
CLOSE Fecha_Cursor
DEALLOCATE Fecha_Cursor
DELETE FROM #Fechas
WHERE datepart(dw, Fechas) = "7" --Elimina los domingo de la fechas disponibles
DELETE FROM #Fechas
WHERE datepart(dw, Fechas) = "6" --Elimina los sábados de la fechas disponibles
DELETE FROM #Fechas
WHERE Fechas in (SELECT Festivo
FROM Festivos) --Elimina los dias festivos
SELECT Fechas --da como resultado las fechas disponibles d reserva
FROM #Fechas
GO
Este procedimiento me funciona correctamente en el servidor Web pero en mi equipo al realizar una migraciónde mi aplicación a 2005 resulta que no me funciona y me saca el siguiente error:
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
The statement has been terminated.
en 3 líneas del procedimiento
Lo que es raro para mi es que anteriormente funcionaba pero ahora no quiere funcionar le cambie en los convert de 103 o 112 y el procedimiento funciona pero cuando voy a convertir los valores que me arroja a DateTime en la aplicación me dice que no reconoce el formato de fecha cómo valido.
Muchas gracias por toda la ayuda que me puedan brindar. Espero haber sido clara en la explicación de mi problema