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

Preguntas sobre fechas com Procedimientos almacenados

Estas en el tema de Preguntas sobre fechas com Procedimientos almacenados en el foro de SQL Server en Foros del Web. Hola tengo las siguientes dudas sobres las fecha - Como se puede obtener el ultimo dia de cada mes - Como se puede obtener con ...
  #1 (permalink)  
Antiguo 10/11/2006, 14:41
 
Fecha de Ingreso: marzo-2003
Mensajes: 524
Antigüedad: 21 años, 1 mes
Puntos: 2
Preguntas sobre fechas com Procedimientos almacenados

Hola tengo las siguientes dudas sobres las fecha

- Como se puede obtener el ultimo dia de cada mes
- Como se puede obtener con el numero de dia en que numero de semana estamos en un año
- Como se puede obtener con el numero de dia en que mes estamos en un año
- Como se puede obtener años donde hay 29 de Febrero

Disculpen si molesto muchas Gracias
  #2 (permalink)  
Antiguo 10/11/2006, 19:47
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Sigue este link, con eso, un poco de estudio y otro poco de paciencia seguro lo lograrás.
http://msdn.microsoft.com/library/de..._dbcc_217n.asp

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 13/11/2006, 04:28
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Aqui tienes la funcion ya hecha...
Un año bisiesto es multiplo de 4 pero no de 100, y si de 400

Código:
create function dbo.fnDiasDelMes(@Mes as int, @anyo as int) returns int
-- Calcula los dias de un mes, teniendo en cuenta si el año es bisiesto o no
as
begin
    declare @dias as int
    
    if @Mes = 1 or @Mes = 3 or @Mes = 5 or @Mes = 7 or @Mes = 8 or @Mes = 10 or @Mes = 12
        set @dias = 31
    else if @Mes = 4 or @Mes = 6 or @Mes = 9 or @Mes = 11
        set @dias = 30
    else if @Mes = 2
        if (@anyo%4 = 0) and ((@anyo%100 <> 0) or (@anyo%400 = 0))
            set @dias = 29
        else
            set @dias = 28

    return (@dias)
end
GO

Última edición por PosProdukcion; 13/11/2006 a las 04:56
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:21.