none
Como calcular los bimestres en sql

    Question

  • Saludos amigos,

    Tengo el siguiente procedimiento almacenado:

    create PROCEDURE [dbo].[Carga_Fecha_Envio] AS
    BEGIN
    
        declare @fechaMaxima date = (select Convert(date,MAX(V.VENTA_FECHA_ENVIO),122) from STAGEPROYECTO.dbo.Venta V)
        declare @fechaMinima date = (select Convert(date,MIN(V.VENTA_FECHA_ENVIO),122) from STAGEPROYECTO.dbo.Venta V)
    
       
    
        WHILE(@fechaMinima <= @fechaMaxima)
        BEGIN
    
            IF(NOT EXISTS(SELECT 1 FROM DWHPROYECTO.dbo.FECHA tp where tp.FECHA = @fechaMinima))
            BEGIN
                INSERT INTO FECHA(
                    FECHA            ,DESC_FECHA        ,ANNO
                    ,MES_ID            ,DESC_MES_ANNO    ,DESC_MES
                    ,DIA            ,SEMESTRE_ID    ,DESC_SEMESTRE
                    ,TRIMESTRE_ID    ,DESC_TRIMESTRE    ,DIADELASEMANA
                )
                VALUES(
                    @fechaMinima
                    ,CONVERT(varchar,@fechaMinima,103)
                    ,YEAR(@fechaMinima)
                    ,YEAR(@fechaMinima) * 100 + MONTH(@fechaMinima)
                    ,(case MONTH(@fechaMinima)
                                        when 1 then 'Enero'
                                        when 2 then 'Febrero'
                                        when 3 then 'Marzo'
                                        when 4 then 'Abril'
                                        when 5 then 'Mayo'
                                        when 6 then 'Junio'
                                        when 7 then 'Julio'
                                        when 8 then 'Agosto'
                                        when 9 then 'Setiembre'
                                        when 10 then 'Octubre'
                                        when 11 then 'Noviembre'
                                        when 12 then 'Diciembre'
                                    end) + ' - ' + CONVERT(varchar,YEAR(@fechaMinima))
                    ,(case MONTH(@fechaMinima)
                                        when 1 then 'Enero'
                                        when 2 then 'Febrero'
                                        when 3 then 'Marzo'
                                        when 4 then 'Abril'
                                        when 5 then 'Mayo'
                                        when 6 then 'Junio'
                                        when 7 then 'Julio'
                                        when 8 then 'Agosto'
                                        when 9 then 'Setiembre'
                                        when 10 then 'Octubre'
                                        when 11 then 'Noviembre'
                                        when 12 then 'Diciembre'
                                    end)
                    ,DAY(@fechaMinima)
                    ,YEAR(@fechaMinima) * 100 + (case
                                                            when MONTH(@fechaMinima) >=1 and MONTH(@fechaMinima) <= 6 then 1
                                                            else 2
                                                        end)
                    ,'Semestre ' + (case
                                                            when MONTH(@fechaMinima) >=1 and MONTH(@fechaMinima) <= 6 then '1'
                                                            else '2'
                                                        end) + ' - ' + CONVERT(varchar,YEAR(@fechaMinima))
                    ,YEAR(@fechaMinima) * 100 + DATEPART(QUARTER,@fechaMinima)
                    ,'Trimestre ' + CONVERT(varchar, DATEPART(QUARTER,@fechaMinima)) + ' - ' + CONVERT(varchar,YEAR(@fechaMinima))
                    ,(case DATEPART(DW,@fechaMinima)
                                        when 1 then 'Domingo'
                                        when 2 then 'Lunes'
                                        when 3 then 'Martes'
                                        when 4 then 'Miercoles'
                                        when 5 then 'Jueves'
                                        when 6 then 'Viernes'
                                        when 7 then 'Sábado'
                                      end)
                )
           
            END
       
           
            set @fechaMinima = DATEADD(DAY,1,@fechaMinima)
        END
       
    END
    
    GO
    

    Este procedimiento almacenado es para calcular las fechas, trimestres, semestres y años, pero necesito calcular los bimestres, tienen alguna idea de como poderlo hacer, les agradeceria mucho la ayuda pues es para un DataWareHouse.


    Pura Vida
    Friday, November 18, 2011 1:17 AM

Answers