Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Bisisesto: Ultimo dia de Febrero

Estas en el tema de Bisisesto: Ultimo dia de Febrero en el foro de SQL Server en Foros del Web. Hola, buen dia! Tengo la siguiente formula que me dice si un año es bisiesto o no: -- Evaluar si un año es bisiesto if ...
  #1 (permalink)  
Antiguo 18/03/2008, 12:33
Avatar de otreblanc  
Fecha de Ingreso: mayo-2005
Ubicación: Chiapas, la última frontera...
Mensajes: 73
Antigüedad: 19 años
Puntos: 0
Bisisesto: Ultimo dia de Febrero

Hola, buen dia!

Tengo la siguiente formula que me dice si un año es bisiesto o no:
-- Evaluar si un año es bisiesto
if @contador= 2 --mes febrero
-- Es bisiesto cuando, o bien es divisible por 4 pero no por 100, o bien es divisible por 400
if (((@anualidad% 4)= 0) and ((@anualidad% 100)<> 0)) or ((@anualidad% 400)= 0)
set @maxDia= 29 --Es bisiesto
else
set @maxDia= 28 --No es bisiesto

Funciona a la perfeccion, pero mi duda es si hay algo "mas directo" en SQL, para saber si un año es bisiesto o no.

Gracias!
  #2 (permalink)  
Antiguo 18/03/2008, 14:05
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Bisisesto: Ultimo dia de Febrero

Tal vez sirva:

SELECT ISDATE('2003-02-29') -- = 0 No bisiesto
SELECT ISDATE('2004-02-29') -- = 1 Si bisiesto
  #3 (permalink)  
Antiguo 18/03/2008, 18:35
Avatar de otreblanc  
Fecha de Ingreso: mayo-2005
Ubicación: Chiapas, la última frontera...
Mensajes: 73
Antigüedad: 19 años
Puntos: 0
Re: Bisisesto: Ultimo dia de Febrero

Muchas gracias!
  #4 (permalink)  
Antiguo 24/03/2008, 06:47
 
Fecha de Ingreso: julio-2007
Mensajes: 23
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Bisisesto: Ultimo dia de Febrero

Mas sencillo, en el colegio me enseñaron que el bisiesto es divisible entre 4

declare @year int

set @year = 2007

if (@year%4) = 0 begin
select 'bisiesto'
end
else
begin
select 'no bisiesto'
end
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:16.