manipular fechas con sp

02/11/2004 - 18:10 por ac | Informe spam
Hola a todos, tengo este sp y al verificar la fecha de
salida no me da la que deberìa obtener, la idea es
obtener la fecha del mes anterior (último dìa) al que se
ingreso

Ingresa: 26/04/2004, OBTENER: 31/03/2004

el sp si lo hace, pero al actualizar la variable @Fecha
me guarda otra fecha. ¿Alguien sabra como puedo
solucionarlo?

Mil gracias y para los que no trabajaron hoy que
disfruten su día de descanso

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

ALTER PROCEDURE sp_Fecha_Anterior (@Fecha DATETIME
OUTPUT)

AS

ingresada

DECLARE @Dia as NUMERIC(22,8),
@Mes as NUMERIC(22,8),
@Año as NUMERIC(22,8)

SET @Dia = DAY(@Fecha)
SET @Mes = MONTH(@Fecha)
SET @Año = YEAR(@Fecha)


IF @Año IN(2004,2008,2012) AND @Mes = 3
BEGIN
SET @Dia = 29
END
ELSE
SET @Dia = 28

IF @Mes IN (2,4,6,9,11)
BEGIN
SET @Dia = 31
END
IF @Mes IN(1,5,7,8,10,12)
BEGIN
SET @Dia = 30
END

SET @Mes = @Mes -1

SET @Fecha = @Dia+@Mes+@Año

print @Fecha

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
 

Leer las respuestas

#1 Maxi
02/11/2004 - 18:15 | Informe spam
hola, las fechas las deberias pasar en formato ANSI YYYYMMDD


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"ac" escribió en el mensaje
news:2de001c4c0fe$db71a1e0$
Hola a todos, tengo este sp y al verificar la fecha de
salida no me da la que deberìa obtener, la idea es
obtener la fecha del mes anterior (último dìa) al que se
ingreso

Ingresa: 26/04/2004, OBTENER: 31/03/2004

el sp si lo hace, pero al actualizar la variable @Fecha
me guarda otra fecha. ¿Alguien sabra como puedo
solucionarlo?

Mil gracias y para los que no trabajaron hoy que
disfruten su día de descanso

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

ALTER PROCEDURE sp_Fecha_Anterior (@Fecha DATETIME
OUTPUT)

AS

ingresada

DECLARE @Dia as NUMERIC(22,8),
@Mes as NUMERIC(22,8),
@Año as NUMERIC(22,8)

SET @Dia = DAY(@Fecha)
SET @Mes = MONTH(@Fecha)
SET @Año = YEAR(@Fecha)


IF @Año IN(2004,2008,2012) AND @Mes = 3
BEGIN
SET @Dia = 29
END
ELSE
SET @Dia = 28

IF @Mes IN (2,4,6,9,11)
BEGIN
SET @Dia = 31
END
IF @Mes IN(1,5,7,8,10,12)
BEGIN
SET @Dia = 30
END

SET @Mes = @Mes -1

SET @Fecha = @Dia+@Mes+@Año

print @Fecha

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 25/10/2004

Preguntas similares